Предположим, у меня есть библиотека и несколько проектов, зависящих от этой библиотеки. В заголовках библиотек уже есть частичные специализации класса. Я хочу, чтобы каждый зависимый проект переопределялся со своими частными специализациями. Мне нужно добиться этого все статически по соображениям производительности. Ниже приведен упрощенный код.Специализация шаблона Partial C++ в зависимом проекте
код библиотеки:
template <class A, class B, class Enable=void>
struct Widget;
struct Foo
{
};
template <class B>
struct Widget<Foo, B>
{
};
код пользователь:
template <class B>
struct DoSpecialize;
template <class B>
struct Widget<Foo, B, enable_if< DoSpecialize<B> >::type
{
};
Проблемы здесь мы в конечном итоге с несколькими определениями той же специализация. Я думаю, нам нужно где-то disable_if<>
. Как мы могли избежать этого?
В этой последней специализации 'B' действительно конкретный тип? – aschepler
нет, это параметр параметра ... крепление вопрос – paperjam