You're viewing a comment by Julien and its responses.
You're viewing a comment by Julien and its responses.
I am being sponsored by Syntress! They bought me an amazing dedicated server to run catonmat on. If you're looking web services, I highly recommend the Syntress guys!
I am being sponsored by A-Writer! If you ever need help with essay writing, look no further than A-Writer! They will help you with your writing in as quickly as 3 hours!
I love to read science books. They make my day and I get ideas for awesome blog posts, such as Busy Beaver, On Functors, Recursive Regular Expressions and many others.
Take a look at my
Amazon wish list, if you're curious about what I have planned reading next, and want to surprise me. :)
If you are interested in advertising on catonmat.net, contact me.
Free tools for coding on Vietstarsoft.com.
Programming homework help.


Casting any pointer to void* could be considered a limited form of built-in, dynamic, parametric polymorphism.
By stretching things a bit further, you could even see const_cast and reinterpret_cast as falling into the same category.
Comment Responses
Agreed. However,
a) inheritance and virtual functions
b) function overloading
c) templates
are all built-in mechanisms for the *creation* of new polymorphic components in a C++ program. These casts simply *are* polymorphic components: you have no means of extending the set.
You could argue that you can use them (especially the void*) to create new polymorphic components, but then *I* wouldn't call it a built-in mechanism any more (it becomes a Turing-trivial argument).
Still, I appreciate the observation. I hadn't thought of the casts in this light before.
Reply To This Comment