Какова причина того, почему члены static const
не могут существовать в локальных классах? Это кажется довольно глупым ограничением.
Пример:
void foo() {
struct bar {
int baz() { return 0; } // allowed
static const int qux = 0; // not allowed?!?
};
}
struct non_local_bar {
int baz() { return 0; } // allowed
static const int qux = 0; // allowed
};
Цитата из стандарта (9.8.4):
Локальный класс не должен содержать статических данных.