АК
Size: a a a
АК
v
template<typename T> inline static T array[];и дальше в методе класса на строку
inline static int array[1] = {0};
sizeof(array<int>)вижак (последний, в режиме C++17) говорит, что размер неизвестен, и это невалидный аргумент для sizeof
v
АК
template<typename T> inline static T array[];
потому что это - невалидная конструкция (где размер?)v
template<typename T> inline static T array[];
потому что это - невалидная конструкция (где размер?)АК
АК
template <typename T, std::size_t N>или сразу
using array = T[N];
inline static array<int, 1> = { 0 };
inline static std::array<int, 1> = { 0 };
AD
template<typename T> inline static T array[];и дальше в методе класса на строку
inline static int array[1] = {0};
sizeof(array<int>)вижак (последний, в режиме C++17) говорит, что размер неизвестен, и это невалидный аргумент для sizeof
v
v
template<typename T> inline static T array[];и дальше в методе класса на строку
inline static int array[1] = {0};
sizeof(array<int>)вижак (последний, в режиме C++17) говорит, что размер неизвестен, и это невалидный аргумент для sizeof
// .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 };
v
// .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 };
ПК
// .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 };
ПК
ПК