I was able to resolve the issue by manipulating the function as mentioned below :
MOCK_METHOD2(myfuncproxy, void (std::shared_ptr<route>, message&));
void myfunc((std::shared_ptr<route> r, std::unique_ptr<message, std::default_delete<message> > m)
{
myfuncproxy(r,*m.get());
}