title: error C3867: function call missing argument list
body: <p>I'm upgrading a game engine's source code from Visual Studio 2003 to Visual Studio 2008. When I try and compile the source code I get the following error.</p>
  
  <blockquote>
    <p>error C3867: 'UObject::StaticConstructor': function call missing argument list; use '&amp;UObject::StaticConstructor' to create a pointer to member</p>
  </blockquote>
  
  <p>in the following code:</p>
  
  <pre><code>//----(IMPLEMENT_CLASS macro):
  #define IMPLEMENT_CLASS(TClass) \
  UClass TClass::PrivateStaticClass \
  ( \
      EC_NativeConstructor, \
      sizeof(TClass), \
      TClass::StaticClassFlags, \
      TClass::Super::StaticClass(), \
      TClass::WithinClass::StaticClass(), \
      FGuid(TClass::GUID1,TClass::GUID2,TClass::GUID3,TClass::GUID4), \
      TEXT(#TClass)+1, \
      GPackage, \
      StaticConfigName(), \
      RF_Public | RF_Standalone | RF_Transient | RF_Native, \
      (void(*)(void*))TClass::InternalConstructor, \
      (void(UObject::*)())TClass::StaticConstructor \ /* ERROR ON THIS LINE */
  ); \
  extern "C" DLL_EXPORT UClass* autoclass##TClass;\
  DLL_EXPORT UClass* autoclass##TClass = TClass::StaticClass();
  </code></pre>
  
  <p>Note: This code snippet is from <a href="http://www.experts-exchange.com/Programming/Languages/CPP/Q_20756876.html" rel="nofollow noreferrer">http://www.experts-exchange.com/Programming/Languages/CPP/Q_20756876.html</a>  (Needless to say they are exactly same)</p>
  
  <p>I am not sure how should I re-write the line so that there are no errors.</p>
  
  <pre><code>(void(UObject::*)())TClass::StaticConstructor \
  </code></pre>