假设以下代码在被编译器优化和内联时会删除评估三元运算所需的分支是否安全?或者对于大多数主流编译器,将下面的方法分成两个单独的方法以避免分支会更明智吗?
/*! \brief this method returns the cos of an angle. User can specify if it is
* in degrees or radians.
*/
template <typename T, angle_mode AM>
T cos(const T &angle)
{
return (AM == radians) ?
std::cos(angle) :
std::cos(degrees_to_radians(angle));
}