2015-10-06 25 views
0

在閱讀Cpp Primer 5ed第15.8.1章(第631頁)時,我對私有成員項目的定義感到困惑。CPP Primer 5ed。 15.8.1 multiset related

原來是這樣:

std::multiset<std::shared_ptr<Quote>, decltype(compare)*> items{compare}; 

應該不是這個如:

std::multiset<std::shared_ptr<Quote>, decltype(compare)*> items(compare); 

這裏比較作品的構造函數的參數。

+0

這是一個遺憾,你跳過了第2.2.1章。 –

回答

1

要麼工作。

由於C++ 11,使用{}指定初始值設定項(包括調用構造函數的情況)是有效的。

一個不同之處在於,使用{}原因重載決議的形式更喜歡initializer_list的構造,但只要compare不可能轉化爲std::shared_ptr<Quote>,這裏不是一個問題。