Re[7]: Инициализация в условии
От: Сергей Зизев Украина  
Дата: 03.08.05 09:11
Оценка:
Hello, SergeCpp!
You wrote on Wed, 03 Aug 2005 08:48:12 GMT:

S> Здравствуйте, Сергей Зизев, Вы писали:


S> [skipped...]


СЗ>> как объявление функции ? Возможно по тому, что не может привести его к

СЗ>> типу bool ? Так оно и не приводимо к bool.

СЗ>> [skipped...]


СЗ>> With best regards, Sergey Zizyov. E-mail: ziserg@despammed.com


S> Оператор "bool" был упомянут мною именно

S> для предотвращения "...Так оно и не приводимо к bool..."

S> Приводимо.


S> class SomeType

S> {
S> //... где-то тут ЕСТЬ конструктор с параметром типа "int"

S> operator bool(){ return true; } // <<< например

S> };

S> SomeType ok ( 123 );

S> bool val( ok ); // здесь вызывается SomeType::bool()...
Да это все понятно, но речь идет о контексте оператора if (о его condition),
и получается что в данном контексте компилятор не может даже проверить
наличие твоего оператора bool у выражения SomeType ok ( 123 ), ввиду чего
пытается (это я так думаю) распарсить его как объявление функции, что
соответственно приводит к ошибке. Что бы все было ок, поставь равно, как я
писал в первом посте, тогда и твой оператор вызовется.


With best regards, Sergey Zizyov. E-mail: ziserg@despammed.com
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.