c++ - 具有超过 1 个类型名的模板函数

标签 c++ templates type-inference

当只有一个模板参数时,C++模板似乎可以自动扣除类型。例如,

template<typename T> 

void f(const T &t)
{
  cout << t << endl;
}

f(1);

很好。

但是,

template<typename T1, typename T2> 

void f(const T1 &t1, const T2 &t2)
{
  cout << t1 << t2 << endl;
}

f(1, 2);

以上代码无法通过编译。这是编译器的能力还是违反了标准?

最佳答案

第二个函数和调用是完全有效的。您的编译器有问题或完全拒绝它。

关于c++ - 具有超过 1 个类型名的模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4774877/

相关文章:

c++ - 标准库/模板容器的 const 语义的经验法则?

Kotlin 编译器显示编译错误并建议 "change type from ' T' 到 'T"' 而上下文中只有一个 T

java - JDK7 : Diamond inference syntax confusion

c++ - 如何在不同的内核上运行不同的线程?

C++。避免多个文件项目中的交叉链接

c++ - 如何检查模板参数是否为迭代器类型?

Java6、Guava、泛型、类型推断

c++ - 使用 new 关键字的前向声明和类型名

c# - C# 中泛型的处理方式是否与 C++ 中的相同?

c++ - 将函数指针作为非类型模板参数传递