decltype和参数的类型相同
可用于函数的返回类型在参数之后声明,可以使用参数类型确定返回类型。 范例
模板类型名称容器,类型名称索引//正确但需要优化
autoauthandaccess (容器c,索引I ) )。
-Decltype(c[I] ) ) ) ) 0
{
认证用户(;
返回c [ I ];
}
模板vector c时; DCLtype[c[0]]的类型为int
括号是declytype的类型,int x; DECLtype ()类型的int很容易理解为int,因为) ) x )可以修改x的可能值
在c 14中可以使用decltype(auto )导出返回类型,而在C 11中只能使用前面的后置返回类型的方式
如果 decltype派生变量或表达式的类型,则不会更改。 (对于auto和模板,不要忽略引用和const等——译者注。)
对于除变量名以外的类型t表达式,decltype始终报告为类型t
c14支持decltype(auto ),与auto一样,它基于初始化推导类型,但使用DeclType规则。 (也就是说,最初说的,不变,原样——译者注)