I'm interested in designing a class for flexible storage of any imaginable type of data in the same member of the class. At first I thought maybe a template would help me, and it would help half way. However it would only help me write any one of these potential types at a time. I couldn't then use the same variable to store another type later. In other words if I had a template with T=int, then it couldn't be used in the same code where it is T=SomeClass. The only thing I can think of is void*. Is that my best bet? Or am I overlooking something? Sorry if this seems like a perl or objective C question, but I'm interested in doing this type of thing within C++, not on the computational end, but on the user interface end.