С таким классом, как Foo:
struct Foo { static const int i = 9; };
Я считаю, что GCC 4.5 отклонит следующие
Foo f;
int x = decltype(f)::i;
Это будет работать, если я использую промежуточный тип, например:
typedef decltype(f) ftype;
int x = ftype::i;
но я предпочитаю держать пространство имен в чистоте. Я думал, что приоритет может быть проблемой, поэтому я также пробовал круглые скобки, но не повезло. Это невозможно, как представлено, или есть часть синтаксиса, которая может мне помочь?