// StackOverflow.cpp : Defines the entry point for the console application.
//
    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    
    template<typename T, class CONT>
    struct foo_policy
    {
    	static inline void execute() {
    		cout << "regular foo: \n" ;
    	}
    };
    
    template<typename T>
    struct foo_policy<T, std::vector<T*>>
    {
    	static inline void execute() {
    		cout << "specialized foo: \n" ;
    	}
    };
    
    
    
    template<class T ,   class CONT  >
    class Container 
    {
    private:
    	CONT container;
    	T    someData;
    public:
    	void foo()
    	{
    		foo_policy<T,CONT>::execute();
    	}
    };
    
    
    
    int main() 
    {
    	Container<int, std::vector<int>>  a;
    	Container<int, std::vector<int*>> b;
    
    	a.foo();
    	b.foo();
    
    	// your code goes here
    	return 0;
    }