отдельная реализация частично специализированный шаблон

я создаю шаблон для класса, который предполагается взять сигнатуру функции в качестве аргумента шаблона (фабрики классов для подписи, на самом деле).

function signature-like expressions as c++ template argumentsfunction signature as template parameter

для этого я использую метод, который также упоминается в этих так вопрос: а .

это работает прекрасно, пока я декларацию в определении специализации:

template<typename signature>class factory;template<typename ret, typename... args>class factory<ret(args...)>{public:factory(){}};

теперь я хотел отдельную декларацию после определения заголовка более удобочитаемым для пользователя, но я не могу найти право подписи за это.

я пробовал следующие подписи

template<typename ret, typename... args>factory<ret, args...>::factory(){}template<typename ret, typename... args>factory<ret(args...)>::factory(){}

но в обоих случаях компилятор пытается определить, что функции для универсального шаблона, а не специализации, и что, очевидно, не работает.

у вас есть идеи, как определить функцию частично специализированный шаблон этого типа?