Вот лог из Immediate окна отладчика:
l->m_RenderState->m_IsAlphaBlending
true r->m_RenderState->m_IsAlphaBlending
true l->m_RenderState->m_IsAlphaBlending != r->m_RenderState->m_IsAlphaBlending true l->m_RenderState->m_IsAlphaBlending == r->m_RenderState->m_IsAlphaBlending false
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, King of a Stellar War, Вы писали:
KOA>Народ или мне пора в люлю или что это:
KOA>Все переменные имеют тип bool
KOA>Вот лог из Immediate окна отладчика:
l->>m_RenderState->m_IsAlphaBlending KOA>true r->>m_RenderState->m_IsAlphaBlending KOA>true l->>m_RenderState->m_IsAlphaBlending != r->m_RenderState->m_IsAlphaBlending KOA>true l->>m_RenderState->m_IsAlphaBlending == r->m_RenderState->m_IsAlphaBlending KOA>false
определенно срочно в люлю. наутро заметишь какую-нить очевидную опечатку или то, что отлаживаешься в release.
Здравствуйте, King of a Stellar War, Вы писали:
KOA>Народ или мне пора в люлю или что это:
KOA>Все переменные имеют тип bool
KOA>Вот лог из Immediate окна отладчика:
l->>m_RenderState->m_IsAlphaBlending KOA>true r->>m_RenderState->m_IsAlphaBlending KOA>true l->>m_RenderState->m_IsAlphaBlending != r->m_RenderState->m_IsAlphaBlending KOA>true l->>m_RenderState->m_IsAlphaBlending == r->m_RenderState->m_IsAlphaBlending KOA>false
Если кто-то как-то умудрился "разрушить" содержимое объекта типа 'bool', то поведение будет не определено. Например, если в два объекта типа 'bool' силой запихать какие-то разные произвольные ненулевые физические представления, то запросто может оказаться, что отладчик их показывает как 'true', но равенство не выполняется.
Здравствуйте, Андрей Тарасевич, Вы писали:
АТ>Здравствуйте, King of a Stellar War, Вы писали:
KOA>>Народ или мне пора в люлю или что это:
KOA>>Все переменные имеют тип bool
KOA>>Вот лог из Immediate окна отладчика:
l->>>m_RenderState->m_IsAlphaBlending KOA>>true r->>>m_RenderState->m_IsAlphaBlending KOA>>true l->>>m_RenderState->m_IsAlphaBlending != r->m_RenderState->m_IsAlphaBlending KOA>>true l->>>m_RenderState->m_IsAlphaBlending == r->m_RenderState->m_IsAlphaBlending KOA>>false
АТ>Если кто-то как-то умудрился "разрушить" содержимое объекта типа 'bool', то поведение будет не определено. Например, если в два объекта типа 'bool' силой запихать какие-то разные произвольные ненулевые физические представления, то запросто может оказаться, что отладчик их показывает как 'true', но равенство не выполняется.
АТ>
АТ>Проверь, что там физически сидит в твоих 'bool'-ах, и если там что-то неожиданное, что ищи, как оно туда попало.
Я привёл свои bool к unsigned char и получил что в них хранится шо попало, то 1, то 205, то еще что-то — эт онормально?(vc++ 8)....в общем так понял, что != == применять к bool низя, нада писать свой XOR или NOT XOR
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, King of a Stellar War, Вы писали:
АТ>>Проверь, что там физически сидит в твоих 'bool'-ах, и если там что-то неожиданное, что ищи, как оно туда попало.
KOA>Я привёл свои bool к unsigned char и получил что в них хранится шо попало, то 1, то 205, то еще что-то — эт онормально?
Нет, это не нормально.
KOA>(vc++ 8)....в общем так понял, что != == применять к bool низя, нада писать свой XOR или NOT XOR
Применять != и == к 'bool', разумеется, можно. А вот пихать туда что попало нельзя. Еще раз: ищи кто, где, как и зачем запихал в эти 'bool' какой-то мусор. Вот там и надо править, а не писать свой xor.
Здравствуйте, Андрей Тарасевич, Вы писали:
АТ>Здравствуйте, King of a Stellar War, Вы писали:
АТ>>>Проверь, что там физически сидит в твоих 'bool'-ах, и если там что-то неожиданное, что ищи, как оно туда попало.
KOA>>Я привёл свои bool к unsigned char и получил что в них хранится шо попало, то 1, то 205, то еще что-то — эт онормально?
АТ>Нет, это не нормально.
KOA>>(vc++ 8)....в общем так понял, что != == применять к bool низя, нада писать свой XOR или NOT XOR
АТ>Применять != и == к 'bool', разумеется, можно. А вот пихать туда что попало нельзя. Еще раз: ищи кто, где, как и зачем запихал в эти 'bool' какой-то мусор. Вот там и надо править, а не писать свой xor.
Я кажется понял в чем дело, там просто сравнивались не всегда инициализированны bool...
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, King of a Stellar War, Вы писали:
KOA>Я привёл свои bool к unsigned char и получил что в них хранится шо попало, то 1, то 205, то еще что-то — эт онормально?(vc++ 8)....
205 = 0xCD — это отладочный мусор (менеджер памяти специально забивает им свежевыделенные блоки). Проявляется в дебаге, естественно.
Если поставишь BoundsChecker, то он будет забивать другим кодом (кажется, 0x5EE5).
KOA>в общем так понял, что != == применять к bool низя, нада писать свой XOR или NOT XOR
Можно и нужно. Но только к инициализированным переменным. А иначе... принцип GIGO — garbage in, garbage out.
Если перешерстить программу в поисках неинициализированных переменных сложно — можешь воспользоваться классом auto_value (см. поиск на RSDN).