title: How can I determine whether a void * pointer points to a objective-c object or a c++ object at runtime
body: <p>I have searched around for a while, but surprised that no one ever popped this question, so here I go:</p>
  
  <p>I have a Objective-C method that takes an id argument. Now I want to use <code>respondsToSelector:</code> to determine if it is valid for following actions, if it is not not I have a backup plan for it. (Which is not <code>ASSERT(0)</code> :P)</p>
  
  <p>So, when someone tries to mess up with me and pass an <code>(id)someC++Object</code>, I've got a big crash, of course. </p>
  
  <p>My question is simply: Can I make a C++ object fail a <code>respondsToSelector:</code> safely so that I can use my backup plan (punching the coder in the face for one)?</p>