C++ 类型修饰符顺序

标签 c++ templates

在 C++ 中,我们有模板函数。例如:

template<class A,class B>
void something(A a, B b){
     //do something
}

编译器如何猜测 A 和 B 类型的修饰符?它们可以是 A、A&、const A& 等... 它用来选择类型修饰符的标准是什么?是标准规定的吗?

最佳答案

是的,该标准在类型推导方面有一些相当复杂的规则。它们太长了,无法在这里引用,但希望知道 C++ 本身精确指定的行为足以让您满意。请注意,auto 的规则几乎相同。

关于C++ 类型修饰符顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26732746/

相关文章:

c++多文件处理,数据成员的重新定义

html - 如何在 GO、Google App Engine 中解析 HTML 模板

c++ - 无法理解 int 和用户定义类型之间的名称查找差异 - 可能与 ADL 相关

c++ - 模板重载 = 运算符在一个类中工作而在另一个类中编译失败?

c++ - 具有原始类型的 C++ 模板

c++ - 为类型集专门化函数模板

c++ - GCC 产生隐藏的删除运算符调用,尽管构造函数被标记为 noexcept

c++ - 覆盖另一个 kext 定义的方法?

c++ -\t 考虑了多少个空格

c++ - 眼镜检测