2015-12-09 2 views
0

В C++ типа члена функции можно рассматривать как:Названия частей в объявлении члена функции

R(C::*)(Args...) qualifiers/specifiers 

мне интересно, если ту часть, которая находится перед (Args...) имеет официальное название (я означает R(C::*))? (например, декларатор функции или что-то в этом роде)

+3

смотрите на этом сайте, возможно, http://www.nongnu.org/hcb/ – user3125280

ответ

4

R(C::*) не имеет имени. Это конкатенация двух разных видов грамматики. R является спецификатором -seq, тогда как (C::*) является noptr-abstract-declarator. Но noptr-абстрактный-описатель связывается с параметрами-и-классификаторов, т.е.(Args...) и так далее, более сильно, чем к типа спецификатор-сл. Это немного похоже на то, как в выражении 1+2*3 нет имени для подстроки 1+2, поскольку оно не имеет независимого значения.