Я пытаюсь сделать простой векторный класс (математика) следующим образом:
template <int D, typename T = float>
class Vector
{
T m[D];
// ...
};
Где D - количество измерений. Если оно равно двум, вектор сохранит два значения типа T.
Как я могу объявить конструкторную функцию принимать аргументы D типа T?
Vector<2> v(1.0f, -6.3f);
Как добавить функцию только в том случае, если D, если имеется определенный номер? Я хочу добавить GetX(), если D is >= 1, GetY(), если D is >= 2 и GetZ(), если D is >= 3, но следующий код должен генерировать время компиляции ошибка:
Vector<2> v(1.0f, -6.3f);
cout << v.GetZ() << endl;
Как сгенерировать ошибку времени компиляции, если D является < 1
Я не следую никакому конкретному стандарту, все будет работать для меня.