How do I get the template type of a given element at runtime in C++? -
 i'm designing simple array  class capability of holding type of object, vector can hold multiple types of data in 1 object. (this learning purposes.)  i have empty base class called container :  class container {};  and templatized subclass called object :  template <class t> class object : public container { t& object; public: object(t& obj = nullptr) : object(obj) {} };  i have array  class holds vector  of pointers container s use hold object s:  class array { std::vector<container *> vec; public: template <class t> void add_element(const t&); auto get_element(int); };  add_element  stores elements object s , puts them vec :  template <class t> void array::add_element(const t& element) { vec.push_back(new object<t>(element)); }  get_element  removes element it's object  , passes caller. problem lies. in order remove element object , need know type of object  is:  auto array::get_element(int i) { return (object</* ??? */> *...