struct NoNewable
{
void *operator new(std::size_t) = delete; //禁止通过new操作符创建对象
};
struct NonCopyable
{
NonCopyable & operator=(const NonCopyable&) = delete; //禁止赋值
NonCopyable(const NonCopyable&) = delete; //禁止拷贝构造
NonCopyable() = default;
};
struct NonStack
{
private:
NonStack() = default; //禁止在栈上创建对象
public:
static NonStack* Create(){
return new NonStack;
}
};
struct OnlyInt{void f(int i);template<class T> void f(T) = delete; //禁止用非int类型参数调用f};
本文深入探讨了C++中模板元编程的概念、原理及其应用,包括删除构造函数、赋值运算符等功能,旨在帮助开发者掌握高级编程技巧。
790

被折叠的 条评论
为什么被折叠?



