Но типа, я же курсе, что true и false можно интерпретировать как 1 и 0 соответственно. И по сему возникла дикая тяга переписать цикл:
for(const_iterator iPropSet(begin()),_ePropSet(end());iPropSet!=_ePropSet;++iPropSet)
{
//преобразование к bool вставил на всякий пожарный
cSets+=(bool)CheckFilter((*iPropSet),pPropSetFilter,Include);
}//for iPropSet
Правда, теперь взбунтовалась моя другая половина, которая радеет за написание кода, понятного даже дебилу — каким я и буду, когда снова залезу в эту часть программы через полгода.
Кто что думает по этому поводу?
Может голование устроить ?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
[]
КД>Но типа, я же курсе, что true и false можно интерпретировать как 1 и 0 соответственно.
А можно интерпретировать и как -1 и 0 соответственно. Вообще-то, я как-то давно уже привык, что true — это любое отличное от 0 значение, false — ноль. Так шта...
Здравствуйте, Flamer, Вы писали:
F>А можно интерпретировать и как -1 и 0 соответственно. Вообще-то, я как-то давно уже привык, что true — это любое отличное от 0 значение, false — ноль. Так шта...
Вообщем, тоже ничего. Но, чего-то удовлетворения не ощущается
Я почему начал этот топик. В какой-то толковой книженции прочитал, что глупо не использовать очевидные возможности языка программирования. На практике может, ну например из за сбоя, true стать скажем 2 ?
Вообще, что по этому поводу думают эксперты промышленного программирования ?
Хотя вот Павел появился
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Привет всем.
КД>Сегодня опять всплыла моя темная сторона, которая обожает эээ.... хакинг или фичи C++ (?)
КД>Но типа, я же курсе, что true и false можно интерпретировать как 1 и 0 соответственно. И по сему возникла дикая тяга переписать цикл:
Здесь же все равно приводится к bool, хотя, конечно, если нам вернется true==2 то мы его насильно приведем к 1. В варианте с (bool), как показано выше, мы таки можем присвоить 2.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД> Здесь же все равно приводится к bool, хотя, конечно, если нам КД> вернется true==2 то мы его насильно приведем к 1. В варианте с КД> (bool), как показано выше, мы таки можем присвоить 2.
true всегда преобразуется в 1. Никакого другого значения, ни с приведением,
ни без получить невозможно.
Posted via RSDN NNTP Server 1.4.6 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Flamer, Вы писали:
F>А можно интерпретировать и как -1 и 0 соответственно. Вообще-то, я как-то давно уже привык, что true — это любое отличное от 0 значение, false — ноль. Так шта...
false == 0
true == 1
Это — стандарт.
Любой скалярный тип приводится к булевскому через сравнение с 0.
Конструкции, принимающие на вход bool — т.е. if(), while(), ?: — в случае скалярных значений разворачиваются именно так:
if(v) === if(v != 0)
Иногда (а в виндоузе — повсеместно) используется тип BOOL == int. В нем принято FALSE=0, TRUE=1, истина=чтоугодноне0.
Видимо, так сделано из соображений производительности...
Ну, и стоит заметить, что в VisualBasic (и, соответственно, в OLE) True = Integer(-1) = 32767.
КД>Правда, теперь взбунтовалась моя другая половина, которая радеет за написание кода, понятного даже дебилу — каким я и буду, когда снова залезу в эту часть программы через полгода.
КД>Кто что думает по этому поводу?
Переопредели CheckFilter чтоб возвращал int. А за += bool я бы по рукам бил.