2010-10-30 47 views
1

我正在閱讀Boost.Program_options教程。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") 
; 

我理解這段代碼背後的目的,但是語法混淆了我。函數的縮進行參數是什麼?括號是什麼?

回答

2

我想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); 
+1

這通常被稱爲仿函數。 – 2010-10-30 14:04:23

+0

@Sam Miller:對,一個仿函數或函數對象。 – vitaut 2010-10-30 19:59:11