我正在学习Koffman和Wolfgang的教科书.他们给make_pair的示例实现如下所示:
template<typename Type1, typename Type2>
make_pair(const Type1& first_value, const Type2& second_value) {
return pair<Type1&, Type2&>(first_value, second_value);
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么他们使用Type1&和Type2&来实例化return语句中的对模板而不仅仅是Type1和Type2.
据我所知,make_pair有以下原型:
template<class Type1, class Type2>
std::pair<Type1,Type2> make_pair(Type1 first_value, Type2 second_value);
Run Code Online (Sandbox Code Playgroud)
(注意:自C++ 11以来略有不同)
另见http://en.cppreference.com/w/cpp/utility/pair/make_pair.
这也是标准所说的内容§20.3.3 [pairs.spec].所以这一定是书中的错误(或者你可能忽略了一些东西).
| 归档时间: |
|
| 查看次数: |
1084 次 |
| 最近记录: |