псевдоним для многофункциональный параметр шаблона


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

C++11: How to alias a function?

Я нашел пример кода, который работает для одного параметра функция и один параметр шаблона:

#include <iostream>namespace Bar{   void test()   {      std::cout << "Test\n";   }   template<typename T>   void test2(T const& a)   {      std::cout << "Test: " << a << std::endl;   }}void (&alias)()        = Bar::test;void (&a2)(int const&) = Bar::test2<int>;int main(){    Bar::test();    alias();    a2(3);}

Когда я пытаюсь развернуть двум параметрам функции как таковой:

void noBarTest(T const& a, T const& b){    std::cout << "noBarTest: " << a << std::endl;}void(&hh)(int const&, int const&) = noBarTest<int, int>;

Я получаю эти ошибки в Visual студии:

error C2440: 'initializing' : cannot convert from 'void (__cdecl *)(const T &,const T &)' to 'void (__cdecl &)(const int &,const int &)'

IntelliSense: a reference of type "void (&)(const int &, const int &)" (not const-qualified) cannot be initialized with a value of type ""


Я думал, я следовал образцу, именно в расширении до 2 аргументов.Какой правильный синтаксис для этого?