正在阻止模板参数隐式转换
Preventing template arguments implicit conversion
如果我有这个代码:
std::pair<Class1*,std::string> myFunc()
{
...
return std::make_pair(m_myptr, m_mystr);
}
如何强制返回带有指向Class1的指针和std::字符串的std::对?我不希望发生任何隐含的转换。既然模板参数是在这里推导出来的,我该如何强制执行呢?
用简单解释参数
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};
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何将向量中的可变参数转换为参数的持有者?
- c++ 构造函数 将 1 个字符串参数转换为 3 个属性
- 将空*参数转换为各种类型的参数是UB吗?
- 将可变参数模板参数转换为 JSON 字符串
- C++ 如何将函数参数转换为字符串
- 功能指针参数参数转换为const
- 避免对模板运算符过载的隐式参数转换
- 将C 方法参数转换为模板参数会因编译错误而失败
- 将参数转换为lpwstr createProcess
- 在与时间一起使用 srand 时,如果我没有time_t参数明确地将参数转换为无符号的 int 参数,这有关系吗?
- 将C++整型模板参数转换为整型"longer"型
- 将参数转换为目标类型时,复制用于直接初始化的构造函数省略
- 将命令行参数转换为qimage
- 将可变数量的参数转换为明确的数量
- SDL 方法,参数转换
- 通过错误检查将参数转换为整数
- 功能参数转换为儿童类C
- 参数转换在课堂上
- 在窗口上将格式化的 C 字符串和参数转换为 wstring