нём работал sizeof?
Конкретно ситуация такая:
я в классе объявляю
template<typename T> inline static T array[];
inline static int array[1] = {0};
и дальше в методе класса на строку
sizeof(array<int>)
вижак (последний, в режиме C++17) говорит, что размер неизвестен, и это невалидный аргумент для sizeof
какой-то странный набор символов статическая шаблонная переменная, рядом инлайн переменная с тем же именем..
и static к чему относится?
Наверное, вы хотели сделать так: https://gcc.godbolt.org/z/36JDdo
в итоге так получилось // .h class A { ... template<typename T> static T array[]; template<> static int array<int>[2]; template<> static short array<short>[3]; ...} // .cpp template<> int A::array<int>[] = { 1, 2 }; template<> short A::array<short>[] = { 3, 4, 5 };
Обсуждают сегодня