Здравствуйте, Сергей Зизев, Вы писали:
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>>