Могу ли я использовать assert для обеспечения определения типов.Предположим, есть переменная double d
, как вы можете использовать assert
, чтобы утверждать, что d является двойным?Если assert
не применимо (на что я держу пари), есть ли другой вариант?Я специально ищу тест на неявное приведение типов во время отладки, получая выгоду от функциональности assert
и #define NDEBUG
.
PS Очевидно, я хотел бы использовать это для любого определения типа, просто используя здесь в качестве примера double.Решение должно быть кроссплатформенным и совместимым с C ++ 03.
Мне нравится добавлять проверку ошибок в мои установщики классов.Например, предположим, что существует класс MyClass с закрытой переменной-членом x:
void MyClass::setX(double input)
{
// assert x is double
x = input;
}