我有一个constexpr模板函数,它将弧度转换为度数,以及一个将度数转换为弧度的类似函数。但是,当一个float进入函数时,我得到一个错误,因为转换说我无法将const float转换为float。我通过创建一个不同的函数重载来接受const float作为参数来解决这个问题。有没有办法让函数适用于这两种类型,同时仍然保持将多种变量类型插入函数的能力?
template<typename T> constexpr float radToDeg(const T& rad)
{
return reinterpret_cast<float>(rad) * static_cast<float>(180.f / PI);
}
constexpr float radToDeg(const float& rad)
{
return rad * static_cast<float>(180.f / PI);
}
答案 0 :(得分:0)
这不是reinterpret_cast
的用途。
template<typename T> constexpr float radToDeg(const T& rad)
{
return static_cast<float>(rad) * static_cast<float>(180.f / PI);
}