![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基本概念
指定该类型对象可以默认构造;
指定该类型对象可以从右值构造;
指定该类型对象可以从左值构造;
指定该类型对象可以从右值赋值;
指定该类型对象可以从左值赋值;
指定该对象可以析构;
繁星璀璨G
单身,求对象
展开
-
C++ 具名要求-基本概念-指定该对象可以析构
在对象生存期结束(例如在离开作用域时或由于 delete 表达式)时隐式调用析构函数。如类型要求表中所示的显式析构函数调用是罕见的。 拜伪析构函数调用所赐,所有标量类型都满足可析构 (Destructible) 的要求,而数组类型和引用类型则不满足。注意 std::is_destructible 允许数组与引用类型。原创 2024-01-05 08:30:00 · 390 阅读 · 0 评论 -
C++ 具名要求-基本概念-指定该类型对象可以从左值赋值
指定该类型的实例可从左值表达式复制赋值。 要求 若满足下列条件,则类型 T 满足可复制赋值 (CopyAssignable) : 类型 T 满足可移动赋值 (MoveAssignable) ,且 给定 T 类型的可修改左值表达式 t v,为 T 或 const T 类型的左值表达式或 const T 类型的右值表达式 下列表达式必须合法且拥有其指定的效果原创 2024-01-04 08:30:00 · 364 阅读 · 0 评论 -
C++ 具名要求-基本概念-指定该类型对象可以从右值赋值
指定该类型的实例可以从右值实参赋值。 类型不必为满足此类型要求而实现移动赋值运算符:按值或按 const Type& 接收其参数的复制赋值运算符会绑定到右值实参。 若可移动赋值 (MoveAssignable) 类实现了移动赋值运算符,则它亦可实现移动语义,以获得“rv 在赋值后的值未指定”这一事实的优势。原创 2024-01-03 08:30:00 · 368 阅读 · 0 评论 -
C++ 具名要求-基本概念-指定该类型对象可以从左值构造
指定该类型的实例可以从左值表达式进行复制构造。 C++11 前,重载了 operator& 的类并非是可复制构造 (CopyConstructible) ,从而不可用于标准库容器。C++11 开始,标准库在凡是需要对象地址时都使用 std::addressof。原创 2024-01-02 08:30:00 · 331 阅读 · 0 评论 -
C++ 具名要求-基本概念-指定该类型对象可以从右值构造
类不必为满足此要求而实现移动构造函数:接收 const T& 实参的复制构造函数也能绑定右值表达式。 若可移动构造 (MoveConstructible) 类实现了移动构造函数,则它亦可实现移动语义,以从“构造后 rv 的值未指明”的事实中获利。原创 2024-01-01 18:58:37 · 411 阅读 · 0 评论 -
C++ 具名要求-基本概念-指定该类型对象可以默认构造
对于非聚合类类型的对象,必须定义公开的默认构造函数(用户定义或隐式定义),以满足可默认构造 (DefaultConstructible) 。 非类对象类型的非 const 对象始终可默认构造 (DefaultConstructible) 。 const 的非类类型并非可默认构造 (DefaultConstructible) 。 const 的聚合类型,若其任何成员是非类类型对象,则并非可默认构造 (DefaultConstructible) 。原创 2023-12-31 23:15:19 · 380 阅读 · 0 评论