метод шаблона класса boost :: enable_if
Я получил класс с шаблонными методами, который смотрит на это:
struct undefined {};
template<typename T> struct is_undefined : mpl::false_ {};
template<> struct is_undefined<undefined> : mpl::true_ {};
template<class C>
struct foo {
template<class F, class V>
typename boost::disable_if<is_undefined<C> >::type
apply(const F &f, const V &variables) {
}
template<class F, class V>
typename boost::enable_if<is_undefined<C> >::type
apply(const F &f, const V &variables) {
}
};
по-видимому, оба шаблона создаются, что приводит к ошибке времени компиляции. отличается создание экземпляров методов шаблона от создания свободных функций? Я исправил это по-другому, но я хотел бы знать, что случилось. единственное, о чем я могу думать, это может вызвать такое поведение, условие включения не зависит от непосредственных аргументов шаблона, а скорее от аргументов шаблона класса.
Спасибо