У меня есть общий класс с функцией, которую я хочу ограничить только экземплярами типов с плавающей запятой во время компиляции. Как показано в примере ниже:
template <typename T>
class ClassName
{
// instance variables, etc..
void some_method()
{
// do stuff, but only for floating point types
}
}
Как заставить компилятор отказаться от использования some_method для ClassName типов, отличных от плавающей запятой?
Я смотрел на SFINAE, но я просто не могу заставить его работать, поэтому после нескольких часов неудач я прошу вашей помощи.
Спасибо :)
std::is_floating_point
иstd::enable_if
. - person juanchopanza   schedule 07.08.2013void some_other_method() { some_method(std::is_floating_point<T>()); }
void some_method() { }
Это работает, но мне нужно решение, в котором мне не нужно оборачивать функцию. - person Jesper   schedule 07.08.2013some_method
шаблон. Я ищу предыдущий ответ, который объясняет механизмы, о которых здесь идет речь. - person R. Martinho Fernandes   schedule 07.08.2013