Следующая короткая программа:
#include <vector>
template<typename T>
struct Ref {
T& operator*() { return T::get(); }
};
template<typename T>
struct Repro {
static T& get() { return table.back(); }
inline static std::vector<T> table;
};
struct Type : Repro<Type> {};
struct Unit {
Ref<Type> ut;
Type& base() { return *ut; }
};
int main() {}
Не компилируется в clang (с -std = c ++ 17) в том, что кажется ICE.У MSVC нет проблем с этим. Выделяется ли что-нибудь как известная ошибка лязга, и есть ли обходной путь?
Будучи ЛЕД, это, вероятно, не моя вина, но это не помогает мне, работа - это
смотреть онлайн здесь