#include <iostream>
#include <utility>
#include <string>

    void f(void const* v, std::false_type){
      std::cout << "f(void*)\n";
    }
    void f(std::string const& s, std::true_type){
      std::cout << "f(const std::string &)\n";
    }
    template<typename T>
    void f(T&&t){
      return f(std::forward<T>(t), std::is_convertible<T,std::string>() );
    }

int main() {
	f("hello");
	// your code goes here
	return 0;
}