【编程语言学习】C++ Primer 对constexpr 和常量表达式的讲解
来源:互联网 发布:ec软件 编辑:程序博客网 时间:2024/06/06 01:05
2.4.4 constexpr 和常量表达式
常量表达式
指值不会改变,且在编译过程中就能得到计算结果的表达式,如:
const int max_files = 20; // max_files是常量表达式const int limit = max_files + 1; // limit是常量表达式int staff_size = 27; // staff_size不是常量表达式,因为得到的值是普通的int,而不是const int
const int sz = get_size(); // sz不是常量表达式,虽然sz是常量,但具体的值到运行时才能获取到,所以也不是。
constexpr变量
是常量表达式安全性的升级。因为在复杂系统中很难分辨一个初始值到底是不是常量表达式。虽然可以用const来定义,但在使用时依然会发生初始值不是常量表达式的情况。可以说,在这种情况下,对象的定义和使用是两回事。
C++11规定,允许将变量声明为constexpr类型,以便由编译器来验证变量的值是否是一个常量表达式。声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化:
constexpr int mf = 20; // 20是常量表达式constexpr int limit = mf + 1;// mf+1是常量表达式constexpr int sz = size(); // 只有当size是一个constexpr函数时才是一条正确的声明语句
阅读全文
0 0
- 【编程语言学习】C++ Primer 对constexpr 和常量表达式的讲解
- [C++] constexpr和常量表达式
- 【C/C++】constexpr和常量表达式
- constexpr和常量表达式
- constexpr和常量表达式
- constexpr和常量表达式
- constexpr和常量表达式
- constexpr和常量表达式
- 常量表达式与const和constexpr
- C++中的常量表达式和constexpr
- 【编程语言学习】C++ Primer 对 sizeof 运算符的讲解
- C++ inline constexpr 内联函数和常量表达式函数问题
- c++11 constexpr常量表达式
- C++Primer学习之二#define,const,constexpr
- C语言对编程学习的重要性
- 《C Primer Plus》学习笔记之 C数据的属性(零)常量和变量
- const,constexpr与指针,常量表达式
- constexpr与常量表达式(c++11标准)
- unity中如何实现画面滚动
- javaScript学习笔记
- 【Lua学习笔记】Lua中协程的使用
- innerHTML基础知识
- hdu 6085
- 【编程语言学习】C++ Primer 对constexpr 和常量表达式的讲解
- HashMap的实现原理
- C 一一 static和extern关键字详解
- 使用python fit,predict出现的错误
- 读取excel文件信息实例2
- 并发基本概念介绍
- python基础——函数编程
- javascript随机数
- Surrounded_Regions