是否可以创建仅提供 copy-ctor 的类的实例?或者,如果删除所有其他ctors,那么删除一个copy-ctors是否是好的设计?
struct EmptyClass
{
EmptyClass() = delete;
// using compiler generated copy ctor.
// empty class, also nothing virtual.
void fn()
{
}
};
int main()
{
{
const EmptyClass obj(*static_cast<const EmptyClass*>(nullptr));
obj.fn();
}
// or
{
char buffer[sizeof EmptyClass]{};
const EmptyClass obj(*reinterpret_cast<const EmptyClass*>(buffer);
obj.fn();
}
return 0;
}