【问题标题】:Why does std::make_pair return a pair of reference types为什么 std::make_pair 返回一对引用类型
【发布时间】:2014-04-29 15:13:17
【问题描述】:

我正在从 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);
  }

我不明白他们为什么在 return 语句中使用 Type1& 和 Type2& 来实例化对模板,而不仅仅是 Type1 和 Type2。

【问题讨论】:

  • 那不行,没有返回类型……
  • 这只是书中的一个错误。
  • 我刚看了那本书的开头,嗯……
  • -1:我担心引用不正确。
  • @DieterLücking -1:报价正确,任何有互联网连接的人都可以查看。

标签: c++ std-pair


【解决方案1】:

据我所知make_pair 有以下原型:

template<class Type1, class Type2>
std::pair<Type1,Type2> make_pair(Type1 first_value, Type2 second_value);

(注意:自 C++11 起略有不同)

另见http://en.cppreference.com/w/cpp/utility/pair/make_pair

这也是标准在§20.3.3 [pairs.spec] 中所说的。所以这一定是书中的错误(或者你可能忽略了一些东西)。

【讨论】:

    猜你喜欢
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多