std::string call_hello(abstract& a)
{
    std::cout <<"call_hello:"<< a.hello()<<std::endl;
    return a.hello();
}
std::string call_hello(abstract& a)
{
    return a.hello();
}