例如:
struct X {
X(){/***/}
X(const int& ){/***/}
X( int&&){/***/}
X(const X& ) = default;
X( X&&) = default;
X& operator=(const X& ){/***/}
X& operator=( X&&){/***/}
};
类
X
不是微不足道的,也不是聚合。
检查类
X
的源代码不是一个选项(尽管知道哪些构造函数和运算符可用)。
图书馆没有这方面的特征。也不可能借助核心语言来检查。