В какие модульные тесты должен быть передан класс, чтобы гарантировать, что он обладает всеми свойствами, необходимыми для идиомы C ++ safe-bool?
Пытаясь назвать их всех (извлечено из Безопасная идиома), например test
класса 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) {}
Задача ещё не решена.
Других решений пока нет …