РЕДАКТИРОВАТЬ: Я нахожу гораздо более простой способ решить вашу проблему, так что вот ...
Прежде всего мне нужно кое-что узнать о дизайне вашего класса, это не очень хороший дизайн, если вы хотите все, чтобы быть publi c, используйте структуру, а не класс, во-вторых, если вы хотите что-то проверить, вам нужно написать для этого метод, например:
template <unsigned int s, typename T>
class Vector {
public:
T v[s];
T& x = v[0];
T& y = v[1];
T& z = v[2];
int getSize(){
return s;
};
};
Затем в вашем драйвере вы делаете что-то вроде:
Vector<2, float> vf2;
if(vf2.getSize() > 2){
vf2.x;
vf2.z;
}
else{
vf2.z
cout << "x cannot be called because size is too small.";
}
// сделайте то же самое для остальных ....