static_assert 是在编译时期的断言

Static assertion
static_assert 是在编译时期的断言,作用不言而喻的。
语法是这样:

static_assert ( bool_constexpr , string )   

其中:
bool_constexpr: 常量表达式
string: 如果bool_constexpr表达式为false, 这个string就是编译时候报的错误。

看看代码:

// run-time assert
assert(ptr != NULL)

// C++ 11
// compile-time assert
static_assert(sizeof(void *) == 4, 64-bit is not supported.);

Constructor delegation
之前我们知道,一个类的构造函数不可以调用这个类的其他构造函数。每个构造函数只能包含类的成员变量和共有函数。

// C++03
class A
{
    void init() { std::cout << init(); }
    void doSomethingElse() { std::cout << doSomethingElse()
; }
public:
    A() { init(); }
    A(int a) { init(); doSomethingElse(); }
};

但是C++11允许我们这么干!

// C++11
class A
{
    void doSomethingElse() { std::cout << doSomethingElse()
; }
public:
    A() { ... }
    A(int a) : A() { doSomethingElse(); }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值