Как для C++ принимать аргументы CLI или stdin?
Например, допустим, у меня есть функция foo()
, которую я хочу вызвать с переменным числом аргументов. Для стандартных аргументов я просто использую что-то вроде:
int main(int argc, char* argv[]) {
if (argc < 2) {
std::cout << "usage goes here.\n";
} else {
for (int i; i < argc; ++i) {
foo(argv[i]);
}
}
}
Но что, если они отправят их мне через стандартный ввод и передают параметры моему приложению? Есть ли способ обнаружить и принять/обработать оба? Каков эффективный шаблон проектирования для этого в современном С++ (С++ 11 и выше)?
Меня интересует шаблон проектирования/пример реализации. Не стесняйтесь ссылаться на библиотеку, которая делает это (Boost?), но, пожалуйста, поделитесь/объясните пример реализации.