如何在模板参数中设置属性名称?

问题描述 投票:0回答:0

我有一个矢量类:

template <typename T>
class Vector2 {
    public:
      T x, y;
    Vector2(T x, T, y) : x{x}, y{y} {}
}

我想根据上下文获得不同的访问器:

Vector2<float, x, y> xy;
xy.x = 42;

Vector2<float, u, v> uv;
uv.u = 42;

这在 C++ 中可能吗?更具体地说,这在 C++03 中可能吗?

上下文

我在 C++ 中为 DC/DC 电压转换器开发嵌入式固件。我有不同的值,如电压、电流……一些转换可以将三相电流 (u、v、w) 转换为两相静态 (a、b) 和两相旋转坐标系 (d、q)。具有以下类型会更具可读性:

using CurrentDQ = Vector2<float, d, q>
using CurrentAB = Vector2<float, a, b>
using Current3 = Vector<float, u, v, w>
c++ templates c++03
© www.soinside.com 2019 - 2024. All rights reserved.