Closed. This question is opinion-based 。它目前不接受答案。
想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文来回答。
7年前关闭。
Improve this question
为什么我们不能在函数上使用 显式 关键字?我想不出有什么理由不允许这样做(还有几个相反的理由)。
为什么是这样?
想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文来回答。
7年前关闭。
Improve this question
为什么我们不能在函数上使用 显式 关键字?我想不出有什么理由不允许这样做(还有几个相反的理由)。
为什么是这样?
最佳答案
通过声明函数的已删除模板版本,可以轻松实现您想要实现的(禁止对函数参数进行类型转换):
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/