Fix that clang warning

This commit is contained in:
Jérôme Leclercq 2020-09-07 16:21:43 +02:00
parent 193deb6c04
commit 0cadaecbd2
2 changed files with 24 additions and 4 deletions

View File

@ -27,8 +27,9 @@ namespace Nz
public:
Angle() = default;
Angle(T angle);
Angle(const Angle<AngleUnit::Degree, T>& angle);
Angle(const Angle<AngleUnit::Radian, T>& angle);
template<typename U> explicit Angle(const Angle<Unit, U>& Angle);
Angle(const Angle&) = default;
~Angle() = default;
T GetCos() const;
@ -51,9 +52,6 @@ namespace Nz
Angle<AngleUnit::Radian, T> ToRadianAngle() const;
String ToString() const;
template<AngleUnit U = Unit, typename = std::enable_if_t<U != AngleUnit::Degree>> operator Angle<AngleUnit::Degree, T>() const { return ToDegreeAngle(); } // GCC < 8 bug
template<AngleUnit U = Unit, typename = std::enable_if_t<U != AngleUnit::Radian>> operator Angle<AngleUnit::Radian, T>() const { return ToRadianAngle(); } // GCC < 8 bug
Angle& operator=(const Angle&) = default;
Angle operator+(const Angle& other) const;

View File

@ -155,6 +155,28 @@ namespace Nz
{
}
/*!
* \brief Constructs an Angle object from a angle in degrees, converting if required
*
* \param value Angle object to copy
*/
template<AngleUnit Unit, typename T>
Angle<Unit, T>::Angle(const Angle<AngleUnit::Degree, T>& angle) :
value(Detail::AngleUtils<Unit>::FromDegrees(angle.value))
{
}
/*!
* \brief Constructs an Angle object from a angle in radians, converting if required
*
* \param value Angle object to copy
*/
template<AngleUnit Unit, typename T>
Angle<Unit, T>::Angle(const Angle<AngleUnit::Radian, T>& angle) :
value(Detail::AngleUtils<Unit>::FromRadians(angle.value))
{
}
/*!
* \brief Computes the cosine of the angle
* \return Cosine of angle