Re[3]: Инициализация в условии
От: Сергей Зизев Украина  
Дата: 03.08.05 07:18
Оценка: -2
Здравствуйте, SergeCpp, Вы писали:

[skipped...]

SC>Я не согласен с Вами.


SC>"int ok( 123 )" есть объявление объекта типа "int" с именем "ok"...

Нет, это не так, посмотри внимательно в 8.2/1, там есть почти такой же пример. В C++ данное выражение интерпретируется как объявление функции
с именем ok, возвращающей int и принимающей целое (тоже int). Существует надежда, что комитет когда-нибудь это исправит

SC>Дело НЕ в int.


SC>class SomeType

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

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

SC>};

SC>if( SomeType ok( 123 ) ) // конструируем из 123 и проверяем "не отходя от кассы"

Здесь аналогично, объявлена функция с именем ok, возвращающая SomeType и принимающая целое.

SC>Это РАБОТАЕТ в VC6

Это ошибка в VC6, в VC7.1 это подлечили
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.