c++ heterogeneous container, get entry as type
问题 I have the following simple implementation of a Heterogeneous container: struct Container { struct HolderBase { }; template<typename S> struct Holder : HolderBase { Holder(S* s) : s_(s) {} S* s_; }; template<typename S> void push_back(S* s) { h_.push_back(new Holder<S>(s)); } vector<HolderBase*> h_; template<typename B> B* get(int i) { //magic here } }; Here's how to use it: struct ElementBase {}; struct Element : ElementBase {}; int main() { Container container; container.push_back(new