扩展功能¶
typeinfo¶
语法如下:
typeinfo(expression)
其返回值为一个32位的数值。
Bit |
说明 |
---|---|
|
类型所占数据位宽 |
|
类型是否包含 |
|
字符串,与 |
|
整数,与 |
|
是否为字面量 |
|
类型是否为数组 |
|
类型是否为函数 |
|
类型是否包含 |
|
类型是否包含 |
|
类型是否包含 |
|
类型是否包含 |
|
类型是否包含 |
|
类型是否包含 |
|
类型是否为 |
|
类型是否为变量 |
static_if¶
static_if
的基本使用格式与if
一致,如下:
static_if(condition) condition_true_exprs [else condition_false_exprs]
static_if
的条件必须是编译时就是明确的真或者假,因此:
如果条件为真: 则将
condition_true_exprs
编译到结果中,丢弃condition_false_exprs
;如果条件为假: 则将
condition_false_exprs
编译到结果中,丢弃condition_true_exprs
。
语句 |
描述 |
---|---|
|
一个 |
|
一个 |
嵌套 |
您可以在一个 |
static_assert¶
static_assert
语法如下:
static_assert(condition);
静态断言的条件必须是编译时就是明确的真或者假。静态断言不会被编译到最终的结果中,其也不会受到C语言其他语法规则(比如if
/while
…)的约束。
static_assert
的条件将会指导编译器是否继续进行编译,如果条件为假,则编译器会发出错误信息并停止编译。一般可以和static_if
联合使用。
注意
static_assert必须置于函数内部。