constexpr
1.c++11新标准规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。
2.一般来说,如果你认为变量是一个常量表达式,那就把它声明为constexpr类型。
int sth(){
return 4;
}
const int n=sth();
不能通过编译
constexpr int sth(){
return 4;
}
const int n=sth();
可以通过编译
1.c++11新标准规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。
2.一般来说,如果你认为变量是一个常量表达式,那就把它声明为constexpr类型。
int sth(){
return 4;
}
const int n=sth();
不能通过编译
constexpr int sth(){
return 4;
}
const int n=sth();
可以通过编译
#pragma push_macro(" ")
...
# undef ..
# pragma pop_macro(" ")
将宏定义 go 压入栈
取消它的定义(go 本来含义便获得了恢复)
将宏定义 go 弹出栈,恢复宏定义
#include <iostream>
#define double float
using namespace std;
int main() {
double a = 1.5688958778877;
cout << sizeof(a) << endl;
#pragma push_macro("double")
#undef double
double b = 1.5688958778877;
cout << sizeof(b) <<endl;
#pragma pop_macro("double")
double c =1.5688958778877;
cout << sizeof(c) <<endl;
return 0;
}
4
8
4