Какая особенность языка 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
Другие вопросы по тегам