trinitr0
@trinitr0
провинциальный админ

Как понять вызов функци внутри другой функции с разным количеством параметров?

Разбирая пример юнит-теста встретился такой участок кода:

void Assert(bool b, const string& hint) {
 AssertEqual(b, true, hint); 
}


Но автор не объяснил должным образом как он работает,
а меня он приводит в замешательство. В функцию передаются два параметра, а внутри самой функции вызывается другая, но с тремя параметрами. Не совсем ясно как-то...

Сама AssertEqual реализуется через шаблон:

void AssertEqual (class T& t, const U& u, const string& hint) { if (t != u) {
ostringstream os;
os << "Assertion failed: " << t << "!=" << u << "Hint: " << hint; throw runtime_error(os);
 } }
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
@majstar_Zubr
C++, C#, gamedev
Короче говоря, первую функцию Assert нужно переименовать в AssertIsTrue, а параметр hint в errorMsg. Там должен быть текст, который будет в runtime_error объяснять, откуда взялось значение параметра b из функции Assert. Например, имя функции с аргументами или имя переменной.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы