В плюсах любое положительное число равно true.
??? В таком буквальном виде это утверждение неверно. Если сравнивать 
true с целым значением, то 
true будет преобразовано к значению 
1. А 
1 не равно 
204. Поэтому условие 
true == 204 всегда гарантированно 
ложно.
Я примерно понимаю, что вы хотели сказать - с точностью до наоборот: в булевском контексте любое ненулевое целочисленное значение приводится к 
true. Однако как это относится к теме - не ясно.
-- 09.11.2022, 18:44 --Но в скобке дебагер дает некую цифру (204).
Вы нас скорее всего обманываете. Ваше булевское значение не имеет никакого отношения к тем переменным, которые вы привели выше. Значение 
204 в шестнадцатеричном виде - это 
0xCC. Это подозрительно похоже на какой-то дебажный заполнитель для неинициализированной памяти. То есть вы смотрите на 
неинициализированную переменную типа 
bool, которая содержит "мусорное" значение.
Самое поразительное, что оператор 
Код:
if([b]true [/b]&& [b]true(204)[/b]) = false;
Это какая-то загадка, так как 204 - если это число, по сути тоже
 true.
Нет, нет, нет, ни в коем случае. 
204 в переменной типа 
bool - это не 
true.
Обращение к "мусорной" булевской переменной порождает неопределенное поведение. На практике, если ее физическое представление не совпадает с корректным представлением 
true или 
false на вашей платформе, то такая булевская переменная может вести себя и как "ни 
true, ни 
false", так и как "и 
true, и 
false одновременно". Этот "феномен" очень часто встречается на практике и удивленными вопросами на эту тему забит весь инет. Не пытайтесь работать с неинициализированными переменными.
На вашей платформе (как и на большинстве платформ) 
false скорее всего физически представляется как байт 
0x00, а 
true - как байт 
0x01. Это значит, что 
204 в 
bool будет вести себя непредсказуемым образом.
Вот вам небольшая программка навскидку
Код:
#include <iostream>
#include <cstring>
bool return_bad_bool() __attribute__((noinline));
bool return_bad_bool()
{
  bool b;
  std::memset(&b, 204, 1);
  return b;
}
int main()
{
  bool b = return_bad_bool();
  if (b)
    std::cout << "True!" << std::endl;
  if (!b)
    std::cout << "False!" << std::endl;
}
При компиляции GCC без оптимизаций эта программа выдает одновременно "True! False!" 
http://coliru.stacked-crooked.com/a/ded1d2461a7915f2При компиляции GCC c -O3 эта программа выдает "True!" 
http://coliru.stacked-crooked.com/a/e8ff36833396d507При компиляции Clang она всегда выдает "False!" 
http://coliru.stacked-crooked.com/a/cc113189bb73726cПосмотрев на сгенерированный ассемблерный код, вы сможете понять, почему так происходит. Но с точки зрения языка это просто 
неопределенное поведение.
Вот именно это явление вы и наблюдаете в вашем 
if, когда пытаетесь пихать в него "мусорный" 
bool.