Подход SFINAE:
Код: Выделить всё
template
struct Angle { T m_radians; };
Код: Выделить всё
template
struct Angle { T m_radians; };
Код: Выделить всё
template
struct Angle {
static_assert(std::is_floating_point_v,
"Angle works only with floating point types.");
T m_radians;
};
Код: Выделить всё
requiresКод: Выделить всё
static_assert[Я не спрашиваю мнения о том, какой метод лучше. Кроме того, я понимаю, что такие концепции, как Enable_if, могут использовать SFINAE для исключения перегрузок и специализаций из рассмотрения во время разрешения, чего нельзя сделать с помощью static_assert. Мой вопрос касается исключительно ограничений.]
Подробнее здесь: https://stackoverflow.com/questions/680 ... parameters
Мобильная версия