#include <iostream>
#include <utility>

    void foo(const std::pair<const char*, std::size_t>& p)
    {
        std::cout << "pair" << std::endl;
    }
    
    template <class T>
    void foo(const T& v)
    {
    	std::cout << "generic" << std::endl;
    }
    
    int main()
    {
    	const char* s = "abc";
    	foo(std::make_pair(s, std::size_t(3)));
    }
