    #include <set>
    #include <vector>
    #include <iostream>

    template<typename C>
    void foo(C const& c)
    {
        std::cout << "{ ";
        for (auto x : c)
        {
            std::cout << x << " ";
        }
        std::cout << "}";
    }

    int main()
    {
        std::vector<int> v = {1, 2, 3};
        foo(v);

        std::cout << std::endl;

        std::set<std::string> s = {"Hello,", "Generic", "World!"};
        foo(s);
    }