4
我一直在使用帶有枚舉參數的模板來爲我的代碼輸出提供專門的方法。使用枚舉來專門化模板
template <Device::devEnum d>
struct sensorOutput;
template<>
struct sensorOutput <Device::DEVICE1>
{
void setData(Objects& objs)
{
// output specific to DEVICE1
// output velocity
objs.set(VELOCITY, vel[Device::DEVICE1]);
// output position
objs.set(POSITION, pos[Device::DEVICE1]);
}
};
template <>
struct sensorOutput <Device::DEVICE2>
{
void setData()
{
// output specific to DEVICE2
// output altitude
objs.set(ALTITUDE, alt[Device::DEVICE2]);
}
};
我現在想要添加另一個類似於DEVICE1的傳感器,它將輸出速度和位置。
是否有設置多個專業化的方法?我試過
template <>
struct sensorOutput <Device::DEVICE1 d>
struct sensorOutput <Device::DEVICE3 d>
{
void setData()
{
// output specific to DEVICE1 and DEVICE3
// output velocity
objs.set(VELOCITY, vel[d]);
// output position
objs.set(POSITION, pos[d]);
}
};