分类 不知道起啥名,嘻嘻 下的文章

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