gpt4 book ai didi

C++ 模板比 int->unsigned 转换更好?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:19 24 4
gpt4 key购买 nike

我有如下两个函数

template<typename T>
unsigned int myFunction(T myelement)
{

myelement->func();

return 2;
}

void myFunction(unsigned int myelement)
{
}

我正在使用以下代码

myFunction(2);

visual studio 2012 提示“int 没有 ->func()”。为什么不使用 unsigned int 版本?

最佳答案

您误读了错误消息。编译器不使用 该函数,而是实例化它以确定它是否是候选函数。您需要禁用不适合类型的实例化:

template<typename T>
typename std::enable_if<!std::is_fundamental<T>::value, unsigned int >::type
myFunction( T myelement )
{
// ...
}

Live example

关于C++ 模板比 int->unsigned 转换更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19740293/

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