Проблема еще в том, что сероводород есть в воздухе, ибо выделяется в малых количествах в процессах жизнедеятельности микроорганизмов. Даже пукая вы выпускаете сероводород в воздух, тем самым способствуете окислению серебра.
Вы уверены, что в итоге это все сожрет меньше памяти, учитывая реализацию на разных платформах может порождаться новый процесс (ой как не быстро) или осуществлять загрузку в текущий процесс. Это никогда не будет быстрее, чем обратиться к функции, которая уже загружена в память.
Опять же в целях безопасности много где прикрыта возможность выполнять консольные команды.
Ну я это и имел ввиду, что макрос на самом деле не принимает параметры, а заворачивает метод, который в свою очередь возвращает функтор, я у себя же так делать не стал, ибо это довольно жуткий и устаревший подход. Я у себя использовал потоки и boost::format, который является безопасным, решения было принято для возможности локализации логов и соответственно нормальной обработки косяков в случае недобора или перебора параметров.
На этапе тестирования не всегда может быть выявлена, учитывая факт выравнивания, выделение блоками, опять же все зависит от реализации в библиотеке реализующей методы работы с памятью, изменения от версии к версии. Если где-то что-то неправильно посчитал это одно, но +1, если zero ended строка, то +1, даже не думая. По сути это плавающий баг, который может всплыть через длительное время.
Да, читалки дешевеют, входят в нашу жизнь, я попробовав читалку уже не смог от неё отказаться.
Опять же в целях безопасности много где прикрыта возможность выполнять консольные команды.
Вообще от этого давно пора уходить на потоки.