1

如果我有这个代码:

std::pair<Class1*,std::string> myFunc()
{
  ... 
  return std::make_pair(m_myptr, m_mystr);
}

如何强制返回带有指向 Class1 的指针和 std::string 的 std::pair?我不希望发生任何隐式转换。由于模板参数是在这里推导出来的,我该如何执行呢?

简单地显式参数

return std::make_pair<Class1*,std::string>(m_myptr, m_mystr);

VS2012 报错

4

1 回答 1

3

的唯一目的make_pair是推导出 的模板参数的类型pair。如果您已经确切知道所需的类型,pair请直接初始化它而不是调用make_pair

return std::pair<Class1*,std::string>(m_myptr, m_mystr);

或 (C++11):

return {m_myptr, m_mystr};
于 2013-07-19T17:07:56.113 回答