Предупреждение 634: Сильное несоответствие типов (тип ‘bool’) в равенстве или условно

This is part of my code base
I am rying to run the below code and getting the warning like below code:

#define assert_always()         assert(TRUE)

base::derived(
uint8 id;
){
switch(id)
{
case one:
----;
break;
case two:
----;
break;
default:
assert_always();
break;
}
}

Warning 634: Strong type mismatch (type 'bool') in equality or conditional  .......

The line number is pointing to `assert_always()` function call. Can you guide me to first to understand and then solve this warning?

I have checked by changing TRUE to true but stil having the same problem ...

Actually code was like this in c++ :
#define assert_always()

base::derived(
uint8 id;
){
switch(id)
{
case one:
----;
break;
case two:
----;
break;
default:
assert_always();
break;
}
}

I got the warning Warning 634: Strong type mismatch (type 'bool') in equality or conditional so I introduce

но все-таки пришло предупреждение и после другого ответа изменилось на

but still warning is there ...I am not getting all the exact reason behind this ...

—-; строка — это некоторая функциональность … и упомянутый код на C ++

0

Решение

Что такое TRUE?

Попробуйте это с фактической логической константой:

#define assert_always assert(false)

Также обратите внимание, что assert(true) будут никогда утверждать, так как выражение (буквально) верно.

4

Другие решения

Используйте настоящий тип C ++ bool:

assert(true)

вместо TRUE

Но это не будет делать то, что вы хотите (утверждайте всегда). утверждать (ложь) будет.

0

По вопросам рекламы [email protected]