Здравствуйте, 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 это подлечили