Если вам нужно частично специализировать конструктор, вы можете попробовать что-то вроде:
template <class T, int N>
struct thingBase
{
//Data members and other stuff.
};
template <class T, int N> struct thing : thingBase<T, N> {};
template <class T> struct thing<T, 42> : thingBase<T, 42>
{
thing(T * param1, wchar_t * param2)
{
//Special construction if N equals 42.
}
};
Примечание: это было анонимным из того, над чем я работаю. Вы также можете использовать это, когда у вас есть класс шаблона с большим количеством участников, и вы просто хотите добавить функцию.