Следующая программа завершается с ошибкой при компиляции с Clang с ошибкой : переменная constexpr 'struct2Var' должна быть инициализирована константным выражением {var, 2100433} .
Если я удаляю __attribute__((weak))
из объявления "var", оно проходит без проблем.
Может кто-нибудь объяснить теорию / причину этой ошибки.
struct myStruct
{
public:
constexpr operator const wchar_t*() const
{
return &m_cch;
}
const wchar_t m_cch;
};
extern __attribute__((weak)) const constexpr myStruct var {'a'};
struct myStruct2
{
const wchar_t* stzKey = nullptr;
int intvar = 0;
};
static constexpr const myStruct2 struct2Var[1]
{
{var, 2100433}
};