有没有办法测试默认构造函数不存在?

GBl*_*ney 6 c++ testing c++03

我正在编写一个类型的测试驱动程序,这显然不应该是默认构造的.有没有办法在我的测试驱动程序中声明这是这种情况?我可以通过编译错误手动验证,但我想要一些可以防止未来可能错误地添加默认构造函数的更改.

编辑:我陷入了使用C++ 03的环境.记住这一点,还有其他选择is_default_constructable吗?

Ker*_* SB 11

你可以用static_assert(!std::is_default_constructible<T>::value, "Boo");.一定要#include <type_traits>.