title: What is the non-pointer equivalent of NULL?
body: <p>Apologies for my improper terminology. </p>
  
  <p>I have a piece of code that returns a NULL pointer if an entry doesn't exist:</p>
  
  <pre><code>ObjectType * MyClass::FindObjectType( const char * objectTypeName )
  {
      if ( objectTypeMap.find( objectTypeName ) == objectTypeMap.end() )
      {
          Msg( "\n[C++ ERROR] No object type: %s", objectTypeName );
          return NULL;
      }
      else
          return &amp;objectTypeMap[ objectTypeName ];
  }
  </code></pre>
  
  <p>I want to do the same thing but this time returning an object instead of just a pointer. The following code isn't giving me any compiler errors (which surprises me):</p>
  
  <pre><code>ObjectType MyClass::FindObjectType( const char * objectTypeName )
  {
      if ( objectTypeMap.find( objectTypeName ) == objectTypeMap.end() )
      {
          Msg( "\n[C++ ERROR] No object type: %s", objectTypeName );
      }
      else
          return objectTypeMap[ objectTypeName ];
  }
  </code></pre>
  
  <p>With the pointer I can check if the entry wasn't found like so:</p>
  
  <pre><code>if ( FindObjectType( objectType ) == NULL )
      //Do something
  </code></pre>
  
  <p>How do I perform the equivalent check with the object being returned?</p>