Разница между использованиями enable_if - PullRequest
0 голосов
/ 23 мая 2019

Как указывает cppreference:

std :: enable_if может использоваться в качестве дополнительного аргумента функции (неприменимо к перегрузкам операторов), в качестве возвращаемого типа (неприменимо к конструкторам и деструкторам) или в качестве шаблона класса или параметра шаблона функции.

Это потому, что не имеет никакого значения, где именно enable_if используется в классе шаблона или функции шаблона - единственное, что имеет значение, это тот факт, что он используется в классе шаблона или функции шаблона (и удалит создание экземпляра из набора разрешений перегрузки)?

Может ли это быть использовано также, например,

template<typename T>
class X {
public:
    void someFunc() {
        enable_if<is_integral<T>::value, int>::type dummy;
    }
};

для достижения того же эффекта, который используется при указании cppreference?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...