Check at compile-time is a template type a vector

后端 未结 5 1641
死守一世寂寞
死守一世寂寞 2020-12-24 03:17

I can imagine the following code:

template  class X
{
  public:
   T container;

   void foo()
   {
      if(is_vector(T))
         contain         


        
5条回答
  •  天命终不由人
    2020-12-24 03:50

    Using insert only:

    #include 
    #include 
    #include 
    
    template 
    class X
    {
        public:
        T container;
    
        template 
        void insert(const U& u) {
            container.insert(container.end(), u);
        }
    };
    
    int main() {
        X> v;
        v.insert(2);
        v.insert(1);
        v.insert(0);
    
        for(std::vector::const_iterator pos = v.container.begin();
            pos != v.container.end();
            ++pos)
        {
            std::cout << *pos;
        }
        std::cout << '\n';
    
        X> s;
        s.insert(2);
        s.insert(1);
        s.insert(0);
    
        for(std::set::const_iterator pos = s.container.begin();
            pos != s.container.end();
            ++pos)
        {
            std::cout << *pos;
        }
        std::cout << '\n';
    }
    

提交回复
热议问题