Синтаксис Boost.Program_options - PullRequest
       2

Синтаксис Boost.Program_options

1 голос
/ 30 октября 2010

Я сейчас читаю учебник Boost.Program_options.

Вот код, который они вводят:

// Declare the supported options.
po::options_description desc("Allowed options");
desc.add_options()
    ("help", "produce help message")
    ("compression", po::value<int>(), "set compression level")
;

Я понимаю цель этого кода, однако синтаксис меня смущает. Являются ли строки с отступом аргументами функции? Что с скобками?

1 Ответ

2 голосов
/ 30 октября 2010

Полагаю, desc.get_options() возвращает объект класса, который определяет operator(), который, в свою очередь, возвращает тот же объект. Таким образом, строки с отступом - это вызовы этого оператора с аргументами в скобках.

Глядя на boost/program_options/options_description.hpp, вы видите, что рассматриваемый класс options_description_easy_init, который действительно имеет несколько operator(), таких как:

    options_description_easy_init&
    operator()(const char* name,
               const char* description);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...