gpt4 book ai didi

c++ - C++中的模板疑惑

转载 作者:可可西里 更新时间:2023-11-01 18:04:11 25 4
gpt4 key购买 nike

#include <iostream>
using namespace std;
template<typename T> void test()
{
cout << "Called from template T";
}
template<int I> void test()
{
cout << "Called from int";
}
int main()
{
test<int()>();
}

在上面的片段中 test<int()>()调用第一个版本并给出输出

Called from template T

为什么不调用第二个版本?

最佳答案

根据 ISO C++03(第 14.3/2 节)

在模板参数中,type-id 和表达式之间的歧义被解析为 type-idint() 是一个 type-id,因此会调用第一个版本。

关于c++ - C++中的模板疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3792625/

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