Если у меня есть что-то вроде:
static long double calcFactor_(const short mantissa, const short exponent,const short base = Derived::internals_.base_)
{
assert(mantissa > 0);
assert(mantissa < NumericLimits<short>::max);
assert(exponent < NumericLimits<short>::max);
assert(exponent > NumericLimits<short>::min);
assert(base < NumericLimits<short>::max);
assert(base > NumericLimits<short>::min);
return mantissa * ::pow(static_cast<long double>(base),exponent);
}
и в других местах моей программы я также использую эти идентичные вызовы assert, поэтому я хотел бы переместить его из этого тела fnc в отдельный fnc и размещать вызовы этого fnc только там, где они звонки в активы сейчас. Но поправьте меня, если я ошибаюсь: эти призывы к утверждению будут удалены в выпуске версии, но если у меня будет:
void Assert (//neccesary args here)
{
assert(mantissa > 0);
assert(mantissa < NumericLimits<short>::max);
assert(exponent < NumericLimits<short>::max);
assert(exponent > NumericLimits<short>::min);
assert(base < NumericLimits<short>::max);
assert(base > NumericLimits<short>::min);
}
вызовет ли этот fnc также будет удален из релиза вер или нет? И еще один вопрос: я думаю, что вместо утверждений здесь я должен иметь проверки if (! Condition), потому что какая польза от утверждений, если они будут удалены в окончательной версии. Что ты думаешь?