У меня есть следующий класс шаблона. Мне нужно специализировать функцию alloc
для определенного случая outT
.
template <typename inT, typename outT>
class Filter {
public:
typedef inT InputType;
typedef outT OutputType;
struct Options {
int a, b, c;
};
virtual void alloc();
};
// Partial template specialization for SpecificOutputType
template < typename inT>
class Filter<inT, SpecificOutputType> {
virtual void alloc();
};
Это приводит к тому, что класс Options
и OutputType
не определены для gcc, например:
using FilterType = Filter<SomeIn, SpecificOutputType>:
FilterType::Options options;
Результаты в
error: ‘Options’ is not a member of `Filter<SomeIn, SpecificOutputType>`
Эта ошибка не возникает, если я использую какой-либо тип, отличный от SpecificOutputType
.
Как я могу это решить?
FilterType::Options options;
? - person 463035818_is_not_a_number   schedule 10.10.2016