в Руководстве по стилю C++ Google говорится:
Преинкремент и Преддекремент
форма префикса Использования (++ i) инкрементных и операторов понижения с итераторами и другими объектами шаблона.
Определение: , Когда переменная увеличена (++ я или я ++) или постепенно уменьшилась (-я или я-) и значение выражения не используется, нужно решить ли к преинкременту (декремент) или постинкремент (декремент).
Профессионалы: то, Когда возвращаемое значение проигнорировано, "пред" форма (++ i) никогда не менее эффективно, чем форма "сообщения" (я ++) и часто более эффективно. Это вызвано тем, что постинкремент (или декремент) требует, чтобы копия меня была сделана, который является значением выражения. Если я - итератор или другой нескалярный тип, копируя я мог бы быть дорогим. Так как два типа инкремента ведут себя то же, когда значение проигнорировано, почему не только всегда преинкремент?
Недостатки: разработанная традиция, в C, использования постинкремента, когда значение выражения не используется, особенно в для циклов. Некоторые находят постинкремент легче читать, так как "предмет" (i) предшествует "глаголу" (++), точно так же, как на английском языке.
Решение: Для простых скалярных (необъектных) значений нет никакой причины предпочесть одну форму, и мы позволяем также. Для итераторов и других шаблонных типов, используйте преинкремент.
Хулио М. Мерино Видаль, который, я полагаю, является первоначальным автором, написал в этом сообщении 2007 года , что у него не было времени его завершить.
Разработку взял на себя Борис Шалинг. Это версия, которую вы нашли на http://www.highscore.de/boost/process/ . Согласно этому посту , он все еще активно его развивает.
Есть другая версия, написанная Ильей Соколовым .
По другому вашему вопросу:
Не могли бы вы, возможно, предложить другие кросс-платформенные библиотеки для управления простым запуском и взаимодействием с внешними процессами?
вы можете посмотреть эту вики-страницу со списком альтернатив.
В зависимости от ваших потребностей popen () также может выполнять работа.
Похоже, Boost.Process находится в области песочницы , что говорит о том, что он был предложен для включения и, вероятно, все еще работает, но не были сочтены стабильными, задокументированными и / или достаточно полезными для включения в основной буст-релиз.
Части Boost.Process теперь доступны в нескольких автономных библиотеках в Boost: Boost.Interprocess, Program Options и т. Д.
Другим вариантом может быть модульный POCO , см. Process :: launch ()
, который имеет перегрузку, требующую Pipes ] для в , из и ошибки .