Можно ли написать шаблон / макрос c ++, чтобы проверить, имеют ли две функции одинаковые подписи

Можно ли написать шаблон / макрос c ++, чтобы проверить, имеют ли две функции одинаковые подписи (тип возвращаемого значения и список аргументов)?

Вот'Вот простой пример того, как я хочу его использовать:

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...
}

Так возможно ли это как-то или это просто несбыточная мечта?

Постскриптум На самом деле я'м интересно в с ++ 2003 стандарт.

Ответы на вопрос(3)

Ваш ответ на вопрос