Какая особенность языка C++ повторяет скобки после вызова функции?
Я использую библиотеку boost::program_options, и приведенный ниже код используется для создания описания параметров и добавления параметров к нему:
po::options_description opts("SendFile Options");
opts.add_options()("help,h", "Print this help message")
("other,o","This is the other");
У меня вопрос, какая функция языка C++ позволяет добавлять отдельные описания непосредственно после вызова функции add_options в форме повторяющихся значений, содержащихся в скобках? Как это называется, и как бы я создал функцию, которая работает таким образом?
1 ответ
Решение
Упрощенный пример:
#include <string>
#include <vector>
#include <iostream>
class Options {
public:
Options& operator()(std::string text)
{
strings.push_back(text);
return *this;
}
std::vector<std::string> strings;
};
int main()
{
Options options{};
options("Some text")
("more text")
("even more text");
for(const auto& text : options.strings)
std::cout << text << '\n';
}
Производит:
Some text
more text
even more text