Я пытаюсь сделать простой векторный класс (математика) следующим образом:
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
Я не следую никакому конкретному стандарту, все будет работать для меня.