#include <vector>
#include <deque>
#include <algorithm>
#include <iostream>
#include <ostream>
#include <iterator>
using namespace std;
template <typename T>
class conststaticconstant
{
public://class内含const static integral data(整数型别) member,那么就可以直接赋初值
static const int _datai = ;
static const long _datal = 3L;
static const char _datac = 'c';
constexpr static const double _datad = 8.88;//error: 'constexpr' needed for in-class initialization of static data member 'const float conststaticconstant<T>::_dataf' of non-integral type [-fpermissive]
//static const float _dataf = 9.9;
// void operator ()(const T& elem){
// cout << elem << ' ';
// }
};
int main( )
{
cout << conststaticconstant<int>::_datai << endl;
cout << conststaticconstant<long>::_datal << endl;
cout << conststaticconstant<char>::_datac << endl;
cout << conststaticconstant<double>::_datad << endl;
return ;
}

C++ constexpr类型说明符

const 和 constexpr 变量之间的主要区别在于:const 变量的初始化可以延迟到运行时,而 constexpr 变量必须在编译时进行初始化。所有 constexpr 变量均为常量,因此必须使用常量表达式初始化。

constexpr 函数是在使用需要它的代码时,可以在编译时计算其返回值的函数。当其参数为 constexpr 值并且在编译时使用代码需要返回值时(例如,初始化一个 constexpr 变量或提供一个非类型模板参数),它会生成编译时常量。使用非constexpr 参数调用时,或编译时不需要其值时,它将与正则函数一样,在运行时生成一个值。

const不同,在constexpr声明中如果定义了一个指针,限定符constexpr仅对指针有效,与指针所指对象无关

const int *p     = 0; // non-const pointer, const data
constexpr int *q = 0; // const pointer, non-const data

最新文章

  1. C# 3种方法连接MySql
  2. 4 多表代替密码之Hill 密码_1 矩阵工具类
  3. U3D事件系统总结
  4. jquery选项卡切换
  5. C#如何判断两个数组相等
  6. Toast 用于一个页面有多个提示
  7. hadoop 生态系统版本对应问题
  8. JAVA-4-斐波列
  9. 关于css3的边框的border-radius和border-image用法的详解
  10. 如何在标题栏的title前添加网站logo
  11. Microsoft Edge 浏览器远程代码执行漏洞POC及细节(CVE-2017-8641)
  12. Jquery qTip2实现多种提示效果,支持ajax,以及多种样式
  13. 搭建CAS服务器,并实现一个简单的单点登录的demo
  14. cnpm,vue等命令不识别的问题废人解决方案
  15. The 13th tip of DB Query Analyzer, powerful processing EXCEL file
  16. CoreData的简单使用
  17. Java并发编程(二)-- 创建、运行线程
  18. jboss-as- 7.1.1.Final配置jndi数据源
  19. SpringBoot Cmd运行Jar文件指定active文件的命令如下
  20. 解决方案~Microsoft Security Client OOBE 程序错误

热门文章

  1. Chapter 4 需求工程
  2. SGU 223 little kings BSOJ2772 状压DP
  3. profibus 的DPV0 和DPV1
  4. lr几个常用的函数
  5. loadrunner在win10破解提示:Cannot save the license information because acceses to the registry is denied的解决办法
  6. 微信小程序组件 日历
  7. Java并发编程实战3-可见性与volatile关键字
  8. 【Python】Python基础
  9. RF相关知识
  10. 2018 南京icpc现场赛总结