T1 类型的左值可以通过 const_cast<T2&> 显式转换成类型 T2 的左值。 T1 类型的泛左值可以通过 const_cast<T2&&> 显式转换成类型 T2 的亡值。 如果T1 是类类型,那么 T1 类型的纯右值可以通过 const_cast<T2&&> 显式转换成类型 T2 的亡值。 作为结果的引用会指代原来的对象。 (C++17 前) 如果表...
const_cast 添加或移除 cv 限定符 reinterpret_cast 转换类型到无关类型 C 风格转换 以static_cast、const_cast 及reinterpret_cast 的混合转换一个类型到另一类型 new 创建有动态存储期的对象 delete 销毁先前由 new 表达式创建的对象,并释放其所拥有的内存区域 sizeof 查询类型的大小 sizeof... 查询形参包的大...
C++ keyword:const_cast C++ C++ language if switch for while continue-break goto-return decltype auto constexpr consteval constinit --nullptr static_cast const_cast dynamic_cast reinterpret_cast explicit static Keywords Usage const_casttype conversion expression: as the declaration of the expression ...
6) 强转为“对象的右值引用”表达式,比如,static_cast<char&&>(x)。 x值表达式的属性[properties]: 1) 拥有右值[rvalue]表达式的所有属性。 2) 拥有左值[glvalue]表达式的所有属性。 [注] 类似于纯右值,x值绑定右值引用,但不同的是,x值可能是多态的[polymorphic],并且非类[non-class]的x值可能被const或...
const_cast static_cast dynamic_cast reinterpret_cast Returns the result of specific arithmetic operation. Operator name Syntax Prototype examples (for class T) Inside class definition Outside class definition Unary plus +a T T::operator+() const; T operator+(const T& a); Unary minus -...
const int& cr(n); // reference can be more cv-qualified volatile int& cv{n}; // any initializer syntax can be used int& r2 = r1; // another lvalue reference to the object n // int& bad = cr; // error: less cv-qualified int& r3 = const_cast<int&>(cr); // const_cast ...
a cast expression to non-reference type, such as static_cast(x), std::string{}, or (int)42; the this pointer; (this指针也是纯右值,因为this也是一个地址) a lambda expression, such as [](int x){ return x * x; }.(since C++11) ...
constexpr consteval constinit --nullptr static_cast const_cast dynamic_cast reinterpret_cast explicit static Keywords Usage reinterpret_casttype conversion expression: as the declaration of the expression See also const_cast dynamic_cast static_cast...
C/C++ Keywords asm 插入一个汇编指令. auto 声明一个本地变量. bool 声明一个布尔型变量. break 结束一个循环. case 一个switch语句的一部分. catch …
语句.一个属于const对象的mutable 成员可以被修改. namespace name { declaration-list; } 关键字namespace允许你创建一个新的空间.名字由你选择,忽略创建没有命名的名字空间.一旦你创建了一个名字空间,你必须明确地说明它或者用关键字using. 例如: new