从整数划分问题到C++值元编程——constexpr、模板与函数式。 ...
分类:
编程语言 时间:
2020-06-15 20:48:03
阅读次数:
46
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。 ...
分类:
编程语言 时间:
2020-06-11 13:24:12
阅读次数:
68
自C++11起,constexpr可用来让表达式核定于编译期,例如 constexpr int square(int x){ return x*x; } float a[square(9)];cout<<"size="<<sizeof(a)/sizeof(a[0])<<endl; ...
分类:
编程语言 时间:
2020-05-08 23:01:36
阅读次数:
61
常量表达式 常量表达式是指值不会改变并且在编译过程就能得到计算结构的表达式。一个对象(或表达式)是不是常量表达式由它的数据类型和初始值共同决定,例如: constexpr变量 C++11规定,允许将变量声明为constexpr类型以便由编译器来验证变量值是否是一个常量表达式。声明为constexpr ...
分类:
其他好文 时间:
2020-03-14 13:19:18
阅读次数:
86
constexpr是C++11中新增的关键字,其语义是“常量表达式”,也就是在编译期可求值的表达式。最基础的常量表达式就是字面值或全局变量/函数的地址或sizeof等关键字返回的结果,而其它常量表达式都是由基础表达式通过各种确定的运算得到的。constexpr值可用于enum、switch、数组长度 ...
分类:
编程语言 时间:
2020-02-20 23:39:47
阅读次数:
77
函数知识2 一、 constexpr函数 它承诺在它的参数都是constexpr时一定返回constexpr(常数表达式) 二、 带默认参数值的函数 这个函数是这样的,当你传递实参给它是它就赋值给形参,如果没有实参,那么就用默认的值。 它在日常写代码的什么情况下会用到呢? 其实我觉得这和前面学习的含 ...
分类:
其他好文 时间:
2020-02-04 20:50:03
阅读次数:
96
【1】constexpr VS const const修饰的都是具有运行时常量性; constexpr修饰的都是具有编译时常量性; 假如你将一个成员函数标记为constexpr,则顺带也将它标记为了const。如果你将一个变量标记为constexpr,则同样它是const的。 但相反并不成立,一个c ...
分类:
编程语言 时间:
2020-02-01 10:21:52
阅读次数:
89
std::mismatch 定义于头文件 <algorithm> 一、定义:(共八种定义方式,一开始先了解两种即可) 1. template< class InputIt1, class InputIt2 > constexpr std::pair<InputIt1,InputIt2> mismat ...
分类:
其他好文 时间:
2020-01-24 00:35:39
阅读次数:
102
#include <iostream> using namespace std; constexpr int MEMORYPOOL_ALIGNMENT = 8; //对齐长度 // 内存块 template<typename _T> struct MemoryBlock { int nSize; / ...
分类:
其他好文 时间:
2020-01-12 00:07:45
阅读次数:
99
问题背景 在实现可变参数列表中的类型统计功能前,我们先看看下面代码中的需求场景: 上面的代码中, 都是 的派生类,按照上面已经提供的三个 make_task() 接口,我们能不能只提供一个接口(如下面的代码所示),就可自动选择这三个接口之一创建 对象呢 ...
分类:
编程语言 时间:
2020-01-01 23:27:52
阅读次数:
85