Czy można napisać szablon / makra c ++, aby sprawdzić, czy dwie funkcje mają takie same sygnatury

Czy można napisać szablon / makra c ++, aby sprawdzić, czy dwie funkcje mają takie same sygnatury (typ zwracany i lista argumentów)?

Oto prosty przykład tego, jak chcę go użyć:

int foo(const std::string& s) {...}
int bar(const std::string& s) {...}

if (SAME_SIGNATURES(foo, bar))
{
    // do something useful... make Qt signal-slot connection for example...
}
else
{
    // signatures mismatch.. report a problem or something...
}

Czy to możliwe, czy to tylko marzenie z fajki?

P.S. Właściwie jestem ciekawy w standardzie c ++ 2003.

questionAnswers(3)

yourAnswerToTheQuestion