<分区>
为什么我们不能在函数上使用 explicit 关键字?我想不出 1 个不允许这样做的充分理由(还有几个相反的理由)。
这是为什么?
<分区>
为什么我们不能在函数上使用 explicit 关键字?我想不出 1 个不允许这样做的充分理由(还有几个相反的理由)。
这是为什么?
最佳答案
您想要实现的目标(禁止函数参数的类型转换)可以通过声明函数的删除模板版本轻松实现:
template <class T> void f(T) = delete;
void f(int){}
int main()
{
double k = 4;
f(k); //error: use of deleted function ‘void f(T) [with T = double]’
}
关于c++ - 为什么我们不能使函数显式化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383242/