我可以检查一个类是不是默认可构造的吗?
Can I check that a class is *not* default constructible?
首先,请注意我使用的是c++ 03(不支持c++ 11)。我使用boost概念来检查某个类是否默认可构造:
BOOST_CONCEPT_ASSERT((boost::DefaultConstructible<my_class>));
然而,对于其他一些类,我想断言类型没有有默认构造函数。有办法做到这一点吗?更新:对于所有那些在没有阅读的情况下将问题标记为重复或已经回答的超级专家:我在第一段中声明,我已经使用boost概念来检查类是否默认可构造(这应该是一个重复的问题)。我还明确指出,我不能使用c++ 11,所以type_traits
对我来说是不可用的。所以,有人能指出我的问题"已经回答"的具体部分吗?因为我还没找到
令人失望的是,不,这是不可能的boost概念检查。
不那么令人失望的一点是:你不是在试图反向使用这个工具吗?
通常,您编写的代码需要一个具有一定数量特性的类型,例如构造函数、操作该类型的函数等等。我无法想象你编写的代码需要一个缺乏特定功能的类型。
你似乎不想做面向概念的编程,但强制编码风格。这不是合适的工具
相关文章:
- 在调用接收数组的方法时,模板化数组大小是不是一种糟糕的做法
- 在C++中使用变量而不是"#define"来指定数组大小是不是一种糟糕的做法?(C错误:在文件范围内
- 我什么时候会默认(而不是删除)基类中的复制和移动操作
- 在枚举类型上使用std::max是不是一种糟糕的做法
- std::元组大小,是不是错过了优化?
- 拥有相同方法的静态和非静态版本是不是设计不好
- 为什么``````````````')''默认值不是默认值
- 他是不是很贪婪
- SDL2:移动所有东西而不是使用视图端口是不是很糟糕
- OOP-我是不是把事情复杂化了
- 在DLL中分配内存并将其指针提供给客户端应用程序,这是不是一种糟糕的做法
- 在C++代码中使用C风格的注释是不是一种糟糕的做法
- 如果我在C++中使用堆,我是不是做错了什么
- 这个简单但有用的模式是不是太简单了,不可能成为一个真正的模式
- 在C++中,通过引用传递常量布尔值是不是不好的
- 在main.cpp中而不是在头文件中定义函数是不是一种糟糕的做法
- 既然智能指针已经存在,那么使用C型指针是不是已经过时了
- LNK2019:未解析的外部符号;我是不是忘了
- 重载一个函数同时获取指针或引用是不是一种糟糕的做法
- 我可以检查一个类是不是默认可构造的吗?