一个类应该提交给哪些单元测试以保证它具有 C++ 安全布尔习语所需的所有属性?
尝试命名所有这些(从Safe Bool Idiomtest
中提取),对于一个据称实现了 safe-bool 成语的类的实例Test
,它应该启用以下构造:
if (test) { /* test is valid */ }
if (!test) { /* test is not valid */ }
...并禁止以下构造:
test << 1;
int i = test;
delete test;
if (test1 == test2) {}
if (test != test2) {}