gpt4 book ai didi

c++ - 防止模板参数隐式转换

转载 作者:行者123 更新时间:2023-11-30 02:53:41 25 4
gpt4 key购买 nike

如果我有这段代码:

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 抛出错误

最佳答案

make_pair 的唯一目的是推断pair 的模板参数类型。如果你已经确切知道你想要的 pair 类型,直接初始化它而不是调用 make_pair:

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

或(C++11):

return {m_myptr, m_mystr};

关于c++ - 防止模板参数隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17751701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com