1. Macro definition
#include <iostream>
#include <array>
#include <vector>
#define SIZE 100
template<class T>
class Object{
private:
static
std::array<T,SIZE>data;
public:
Object(){
}
};
int main(){
Object<int>obj;
return 1;
}
2. Global constants
#include <iostream>
#include <array>
#include <vector>
const int SIZE = 100;
template<class T>
class Object{
private:
std::array<T,SIZE>data;
public:
Object(){
std::cout<<data.size()<<std::endl;
}
};
int main(){
Object<int>obj;
return 1;
}
3. Use static in the class
#include <iostream>
#include <array>
#include <vector>
template<class T>
class Object{
private:
static const int SIZE = 100;
std::array<T,SIZE>data;
public:
Object(){
std::cout<<data.size()<<std::endl;
}
};
int main(){
Object<int>obj;
return 1;
}
4. The use of enum class
#include <iostream>
#include <array>
#include <vector>
template<class T>
class Object{
private:
enum class NumSpace{
SIZE = 100,
};
std::array<T,static_cast<int>(NumSpace::SIZE)>data;
public:
Object(){
std::cout<<data.size()<<std::endl;
}
};
int main(){
Object<int>obj;
return 1;
}