大纲
- alignas
- alignof
- asm
- constexpr
- const_cast
- decltype
- default
- explicit
- export
- extern
- mutable
- noexcept
- register
- reinterpret
- thread_local
- throw
- typeid
- virtual
- volatile
alignas
对齐
class alignas(long long) A
{
int a;
}
class A{
char[9] c;
alignas(16) int a;
}
alignof
int main()
{
std::cout << "alignof(struct_float) = " << alignof(A) << std::endl;
}
asm
__asm
{
MOV AL, 2
MOV DX, 0xD007
OUT AL, DX
}
constexpr
constexpr修饰常量
const 只读
constexpr int func(int n)
{
return 1 + n;
}
const int func1(int n)
{
return 1 + n;
}
int main()
{
array <int,func(4)> myarr{1,2,3,4,5}; // success
array <int,func1(4)> myarr{1,2,3,4,5}; //error
return 0;
}
const_cast
const_cast是去掉const
const int constant = 26;
const int* const_p = &constant;
int* modifier = const_cast<int*>(const_p);
*modifier = 3;
decltype
推导类型
int i = 4;
decltype(i) a; //推导结果为int。a的类型为int。
vector<int >vec;
typedef decltype(vec.begin()) vectype;
for (vectype i = vec.begin; i != vec.end(); i++){
}
default
- explicit
- export
- extern
- mutable
- noexcept
- register
- reinterpret
- thread_local
- throw
- typeid
- virtual
- volatile
PREVIOUSLua内置类型的定向导出
NEXTc++的class内存布局