    #include <iostream>
    using namespace std;
    template <typename T>
    void f(T & t)
    {
       cout << __PRETTY_FUNCTION__ << endl;
    }
    void f(const string &)
    {
       cout << __PRETTY_FUNCTION__ << endl;
    }
    void f(int)
    {
       cout << __PRETTY_FUNCTION__ << endl;
    }
    int main()
    {
        f(1.0);
        f(1);
        f(string("sss"));
	string a;
	f(a);
    }
