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>
,这不是问题。
在阅读 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>
,这不是问题。