请问有没有一个类型说明符可以像decltype一样长尾且用于类型推导?

2026-04-16 21:553阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计875个文字,预计阅读时间需要4分钟。

请问有没有一个类型说明符可以像decltype一样长尾且用于类型推导?

有时会遇到这类情况:希望从表达式的类型推导出要定义的变量类型,但不希望使用该表达式的值初始化变量。为了满足这一需求,C++新标准引入了第二种类型说明符decltype。其作用是推导出变量的类型,但不进行初始化。

  有时会遇到这种情况:希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量。为了 满足这一要求,C++新标准引入了第二种类型说明符decltype,它的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值:

decltype(f()) sum = x; //sum的类型就是f的返回类型 View Code

编译器并不实际调用函数f,而是使用当调用发生时f的返回值类型作为sum的类型。换句话说,编译器为sum指定的类型是什么呢?就是假如f被调用的话返回的那个类型。

  decltype处理顶层const和引用的方式与auto有些不同。

阅读全文

本文共计875个文字,预计阅读时间需要4分钟。

请问有没有一个类型说明符可以像decltype一样长尾且用于类型推导?

有时会遇到这类情况:希望从表达式的类型推导出要定义的变量类型,但不希望使用该表达式的值初始化变量。为了满足这一需求,C++新标准引入了第二种类型说明符decltype。其作用是推导出变量的类型,但不进行初始化。

  有时会遇到这种情况:希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量。为了 满足这一要求,C++新标准引入了第二种类型说明符decltype,它的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值:

decltype(f()) sum = x; //sum的类型就是f的返回类型 View Code

编译器并不实际调用函数f,而是使用当调用发生时f的返回值类型作为sum的类型。换句话说,编译器为sum指定的类型是什么呢?就是假如f被调用的话返回的那个类型。

  decltype处理顶层const和引用的方式与auto有些不同。

阅读全文