Sign in to follow this  
fathom88

STL List and Templates

Recommended Posts

I'm trying create a stl list of heterogenous elements. Normally, one would use the list as such. std::vector<bool> BunchOfBools; std::vector<int> BunchOfInts; std::vector<float> BunchOfFloats; I would like to do something like the following. std::vector<MySpecialAnyKind> BunchOfAnything; To maximize expandibility, I defined my MySpecialAnyKind class as a template. Yes, I can do MySpecialAnyKind<int> or MySpecialAnyKind<float>. Then, I'm back to square one. I thought about 1st defining an empty base class. Then, deriving MySpecialAnyKind from MyBaseClase, which really does nothing and is empty. class MyBaseClase { void MyBaseClase(); ~MyBaseClase(); }; template <class Special> class MySpecialAnyKind : MyBaseClase { public: Special DoSomething(); //return template specific }; Then, I would do this. std::vector<MyBaseClase *> BunchOfAnything; I could do an insert with the following new MySpecialAnyKind<int>(); Here is my problem. How do I get the correct MySpecialAnyKind pointer from the list? Should I check the pointer type? I tried to do a dynamic cast but my compiler (VC++ 7.0) didn't like it one bit. Any suggestions? Thanks in advance.

Share this post


Link to post
Share on other sites
To be honest, it's purely acedemic at this point. I alreay found a way around the problem. I just made a vector<int>, vector<string>, vector<bool> you get the idea. My original problem was I used to create a structures and made linked lists all the time to do calculations in my proggrams. I came from C and wanted to learn how to use the advanced features of C++. I created a templated linked list class. Cool! No more re-writing the same linked list code over and over. My structures would have muliple types like int's and string's(mostly for ID purposes). Now, I basically creating a Variant class and using the stl's built in functionality. It's more about learning at this point.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this