Почему статические члены данных не разрешены в локальных классах?

Какова причина того, почему члены 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):

Локальный класс не должен иметь статических элементов данных.

24
задан Ben Voigt 28 April 2014 в 17:34
поделиться