CPP 底漆 5ed。 15.8.1 多重集相关

CPP Primer 5ed. 15.8.1 multiset related

在阅读 Cpp Primer 5ed Chapter15.8.1 (page631) 时,我对私有成员 - item 的定义感到困惑。

原文是这样的:

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

这不应该是这样的:

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

此处比较用作构造函数参数。

两者都有效。

自 C++11 起,使用 {}.

指定初始化程序是有效的,包括调用构造函数的情况

一个区别是使用 {} 的形式导致重载决策更喜欢 initializer_list 构造函数,但只要 compare 不可能转换为 std::shared_ptr<Quote>,这不是问题。