如何为已删除的默认构造函数编写测试

sch*_*312 3 c++ unit-testing default-constructor

我有一个类A,我删除了默认的构造函数.

class A {
  public:
    A() = delete;
    A(int a): m_myInt(a) {}
  private:
    const int m_myInt;
};

int main () {
    A foo(1);  // works perfect
    A bar;   // won't compile
}
Run Code Online (Sandbox Code Playgroud)

如何编写良好的单元测试以确保A bar;无效?我可以编写一个不编译的测试,并将编译错误作为测试要求.我想知道,如果有更好的方法来编写单元测试?

use*_*837 9

2)如果std::is_trivially_constructible<T>::value为true,则提供等于的成员常数值true,否则为值false.

http://en.cppreference.com/w/cpp/types/is_default_constructible

  • 可能是正确的方向,但是对性质的不必要的限制性选择. (2认同)