0

I am using the boost::program_options library and the code below is used to create a description of the options and add options to it:

po::options_description opts("SendFile Options");

    opts.add_options()("help,h", "Print this help message")
        ("other,o","This is the other");

My question is, which C++ language feature allows you to add the separate descriptions directly after calling the add_options function in the form of repeating values contained in parentheses? What is this called, and how would I create a function that works in this manner?

Biffen
  • 6,249
  • 6
  • 28
  • 36

1 Answers1

1

Simplified example:

#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';
}

Produces:

Some text
more text
even more text
wally
  • 10,717
  • 5
  • 39
  • 72