Где Повышение. Процесс?

в Руководстве по стилю C++ Google говорится:

Преинкремент и Преддекремент

форма префикса Использования (++ i) инкрементных и операторов понижения с итераторами и другими объектами шаблона.

Определение: , Когда переменная увеличена (++ я или я ++) или постепенно уменьшилась (-я или я-) и значение выражения не используется, нужно решить ли к преинкременту (декремент) или постинкремент (декремент).

Профессионалы: то, Когда возвращаемое значение проигнорировано, "пред" форма (++ i) никогда не менее эффективно, чем форма "сообщения" (я ++) и часто более эффективно. Это вызвано тем, что постинкремент (или декремент) требует, чтобы копия меня была сделана, который является значением выражения. Если я - итератор или другой нескалярный тип, копируя я мог бы быть дорогим. Так как два типа инкремента ведут себя то же, когда значение проигнорировано, почему не только всегда преинкремент?

Недостатки: разработанная традиция, в C, использования постинкремента, когда значение выражения не используется, особенно в для циклов. Некоторые находят постинкремент легче читать, так как "предмет" (i) предшествует "глаголу" (++), точно так же, как на английском языке.

Решение: Для простых скалярных (необъектных) значений нет никакой причины предпочесть одну форму, и мы позволяем также. Для итераторов и других шаблонных типов, используйте преинкремент.

56
задан alfC 5 January 2017 в 12:27
поделиться

4 ответа

Хулио М. Мерино Видаль, который, я полагаю, является первоначальным автором, написал в этом сообщении 2007 года , что у него не было времени его завершить.

Разработку взял на себя Борис Шалинг. Это версия, которую вы нашли на http://www.highscore.de/boost/process/ . Согласно этому посту , он все еще активно его развивает.

Есть другая версия, написанная Ильей Соколовым .

По другому вашему вопросу:

Не могли бы вы, возможно, предложить другие кросс-платформенные библиотеки для управления простым запуском и взаимодействием с внешними процессами?

вы можете посмотреть эту вики-страницу со списком альтернатив.

В зависимости от ваших потребностей popen () также может выполнять работа.

30
ответ дан 26 November 2019 в 17:17
поделиться

Похоже, Boost.Process находится в области песочницы , что говорит о том, что он был предложен для включения и, вероятно, все еще работает, но не были сочтены стабильными, задокументированными и / или достаточно полезными для включения в основной буст-релиз.

3
ответ дан 26 November 2019 в 17:17
поделиться

Части Boost.Process теперь доступны в нескольких автономных библиотеках в Boost: Boost.Interprocess, Program Options и т. Д.

1
ответ дан 26 November 2019 в 17:17
поделиться

Другим вариантом может быть модульный POCO , см. Process :: launch () , который имеет перегрузку, требующую Pipes ] для в , из и ошибки .

4
ответ дан 26 November 2019 в 17:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: