class ImageMngr
{
struct ImageImportSettings
{
bool no_compression = false;
};
static inline ImageImportSettings image_rules_list;
};
< /code>
ссылка на Godbolt. < /p>
Ошибка: < /p>
error: default member initializer for 'ImageMngr::ImageImportSettings::no_compression' required before the end of its enclosing class
16 | static inline ImageImportSettingsList image_rules_list;
< /code>
Это на Clang и GCC. MSVC компилирует это. C ++ 20 флагов установлены на True на всех трех версиях. Это ... < /p>
struct ImageImportSettings
{
bool no_compression = false;
};
class ImageMngr
{
static inline ImageImportSettings image_rules_list;
};
< /code>
работает, однако. < /p>
Кроме того, если я перехожу от: < /p>
static inline ImageImportSettings image_rules_list;
< /code>
к нестатической переменной: < /p>
ImageImportSettings image_rules_list;
< /code>
это компилируется. Это проблема с тем, что предыдущий класс еще не определен? Почему не статическая переменная работает? И почему это не определено? Похоже, это полностью определено.
Подробнее здесь: https://stackoverflow.com/questions/797 ... the-end-of