#include <string>
#include <deque>
#include <list>
#include <vector>
#include <iostream>

template < template<typename ...> class Container, typename ...Types>
void function(const Container<std::string, Types...>& container) {
    for(const std::string& s: container) {
        std::cout << s << " ";
    }
    std::cout << std::endl;
}

int main () {
    std::deque<std::string> d{ "Hello", "Deque" };
    function(d);
    std::list<std::string> l{ "Hello", "List" };
    function(l);
    std::vector<std::string> v{ "Hello", "Vector" };
    function(v);
    function(std::vector<int>());
    return 0;
}