请问有没有一个类型说明符可以像decltype一样长尾且用于类型推导?
- 内容介绍
- 文章标签
- 相关推荐
本文共计875个文字,预计阅读时间需要4分钟。
有时会遇到这类情况:希望从表达式的类型推导出要定义的变量类型,但不希望使用该表达式的值初始化变量。为了满足这一需求,C++新标准引入了第二种类型说明符decltype。其作用是推导出变量的类型,但不进行初始化。
有时会遇到这种情况:希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量。为了 满足这一要求,C++新标准引入了第二种类型说明符decltype,它的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值:
decltype(f()) sum = x; //sum的类型就是f的返回类型 View Code
编译器并不实际调用函数f,而是使用当调用发生时f的返回值类型作为sum的类型。换句话说,编译器为sum指定的类型是什么呢?就是假如f被调用的话返回的那个类型。
decltype处理顶层const和引用的方式与auto有些不同。
本文共计875个文字,预计阅读时间需要4分钟。
有时会遇到这类情况:希望从表达式的类型推导出要定义的变量类型,但不希望使用该表达式的值初始化变量。为了满足这一需求,C++新标准引入了第二种类型说明符decltype。其作用是推导出变量的类型,但不进行初始化。
有时会遇到这种情况:希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量。为了 满足这一要求,C++新标准引入了第二种类型说明符decltype,它的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值:
decltype(f()) sum = x; //sum的类型就是f的返回类型 View Code
编译器并不实际调用函数f,而是使用当调用发生时f的返回值类型作为sum的类型。换句话说,编译器为sum指定的类型是什么呢?就是假如f被调用的话返回的那个类型。
decltype处理顶层const和引用的方式与auto有些不同。

