здравствуйте) это отрывок из черновика С++-стандарта.. может какой-то добрый человек, объяснить, как это работает и почему? чем отличается int(a) от (int)a? ведь и то и другое вроде бы явное преобразование типа Код (Text): struct S { S(int); }; void foo(double a) { S w(int(a)); // function declaration S x(int()); // function declaration S y((int)a); // object declaration S z = int(a); // object declaration }
параметр функции может выглядеть не только как T x или T но и как T (x) или T(). S w(int(a)); эквивалентно S w(int a); S w(int()); эквивалентно S w(int);