Следующий код не компилируется (GCC, clang):
struct outer {
struct inner {
int i = 1;
int j = 2;
};
void foo (const
inner& param =
inner{}) const {}
};
int main() {
outer{}.foo();
}
Однако добавление конструктора по умолчанию (с реализацией) в inner
решает проблему. Перемещение inner
в область пространства имен также помогает.
В чем проблема? Буду признателен за ссылки на стандарт.