R Справочное руководство по С++

R.8.1.1 Устранение неоднозначности.

   


Назад  |  Вперёд

Неоднозначность, отмеченная в $$R.6.8, которая возникает из-за сходства между приведением, заданным в функциональном стиле, и описанием, может также появиться в контексте описания. В этом контексте она проявляется как сходство между описанием функции, в котором есть избыточные скобки вокруг имени параметра, и описанием объекта, в котором в качестве инициализатора используется операция приведения, заданная в функциональном стиле. Как и для операторов, неоднозначность устраняется правилом, согласно которому следует считать описанием любую конструкцию, которая может служить таковым. Можно явно устранить неоднозначность в описании или с помощью приведения, заданного не в функциональном стиле, или с помощью операции = для обозначения инициализации, например,

           struct S {
              S(int);
           };

           void foo(double a)
           {
             S x(int(a));   // описание функции
             S y((int)a);   // описание объекта
             S z = int(a);  // описание объекта
           }

Назад  |  Вперёд


OtDiatlovaOU
К началу книги

Оформление и дизайн книги OtDiatlovaOU.
Вся книга, архив.