Рассмотрим код:
struct Foo
{
const char str[] = "test";
};
int main()
{
Foo foo;
}
Не удается скомпилировать как с g++, так и с clang++, выплевывая существенно
error: array bound cannot be deduced from an in-class initializer
Я понимаю, что это то, что, вероятно, говорит стандарт, но есть ли какая-то особая веская причина? Поскольку у нас есть строковый литерал, кажется, что компилятор должен иметь возможность выводить размер без каких-либо проблем, аналогично случаю, когда вы просто объявляете строку const
C-like, завершающую нуль.