Re[4]: Инициализация в условии
От: CrystaX Россия https://crystax.me/
Дата: 03.08.05 07:35
Оценка: +1
Здравствуйте, Сергей Зизев, Вы писали:

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


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

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

Неверно. В объявлении функции не может быть целочисленного значения. Может быть только список формальных параметров. 123 не является формальным параметром. Для сравнения:

#include <iostream>

int main()
{
    int ok(123);

    std::cout << ok << std::endl; // Все хорошо, ok - это целочисленная переменная, ее значение 123

    return 0;
}


#include <iostream>

int main()
{
    size_t n = 1;
    int ok(int(n));

    std::cout << ok << std::endl; // А вот здесь уже неверно.
    // ok - это объявление функции, возвращающей int и принимающей также int.
    // Выражение int(n) по синтаксису является списком формальных параметров.

    return 0;
}
... << RSDN@Home 1.1.4 stable rev. 510>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.