#include <iostream>
using namespace std;
using std::cout;
using std::endl;
class Container1
{
    public:
        Container1() :name ("Cont1")
    {};
        string name;
        // implementation here
};

class Container2
{
    public:
        Container2() :name ("Cont2") {};
        string name;
        // implementation here
};

    template<typename ContainerType>
void my_function(ContainerType const& container)
{

    cout << "my_function called: " << container.name << std::endl;
}
int main(int argc, char* argv[])
{
    Container1 cont1;
    Container2 cont2;
    my_function(cont1);
    my_function(cont2);

    return 0;
}
