decltype
decltype 关键字用于检查实体的声明类型或表达式的类型及值分类。语法:
decltype ( expression )
decltype 使用
// 尾置返回允许我们在参数列表之后声明返回类型template <typename It>auto fcn(It beg, It end) -> decltype(*beg){// 处理序列return *beg; // 返回序列中一个元素的引用}// 为了使用模板参数成员,必须用 typenametemplate <typename It>auto fcn2(It beg, It end) -> typename remove_reference<decltype(*beg)>::type{// 处理序列return *beg; // 返回序列中一个元素的拷贝}
