В cppreference упоминается, что если инициализация содержит часть динамической инициализации, программа будет неправильно сформирована при использовании constinit в C++20.
Мне просто интересно, почему тогда компилируется следующий код :
Поскольку класс std::string предполагает динамическое выделение памяти для хранения символов, это кажется противоречивым. Разве это не должно быть запрещено из-за динамической части?
Попытался скомпилировать с флагами -std=C++20, программа компилируется нормально, чего быть не должно.
Подробнее здесь:
https://stackoverflow.com/questions/790 ... init-forbi