1 // @(#)root/base:$Id$ 2 // Author: Philippe Canal 23/2/02 3 4 /************************************************************************* 5 * Copyright (C) 1995-2002, Rene Brun, Fons Rademakers and al. * 6 * All rights reserved. * 7 * * 8 * For the licensing terms see $ROOTSYS/LICENSE. * 9 * For the list of contributors see $ROOTSYS/README/CREDITS. * 10 *************************************************************************/ 11 12 #ifndef ROOT_RtypesImp 13 #define ROOT_RtypesImp 14 15 #ifndef G__DICTIONARY 16 #error RtypesImp.h should only be included by ROOT dictionaries. 17 #endif 18 19 #include "TMemberInspector.h" 20 #include "TError.h" 21 22 namespace ROOT { 23 inline void GenericShowMembers(const char *topClassName, 24 void *obj, TMemberInspector &R__insp, 25 bool transientMember) 26 { 27 Warning("ROOT::GenericShowMembers", "Please regenerate your dictionaries!"); 28 R__insp.GenericShowMembers(topClassName, obj, transientMember); 29 } 30 31 class TOperatorNewHelper { }; 32 } 33 34 // This is to provide a placement operator new on all platforms 35 inline void *operator new(size_t /*size*/, ROOT::TOperatorNewHelper *p) 36 { 37 return((void*)p); 38 } 39 40 #ifdef R__PLACEMENTDELETE 41 // this should never be used but help quiet down some compiler! 42 inline void operator delete(void*, ROOT::TOperatorNewHelper*) { } 43 #endif 44 45 // The STL GenerateInitInstance are not unique and hence are declared static 46 // (not accessible outside the dictionary and not linker error for duplicate) 47 #if defined(__CINT__) 48 #define RootStlStreamer(name,STREAMER) 49 #else 50 #define RootStlStreamer(name,STREAMER) \ 51 namespace ROOT { \ 52 static TGenericClassInfo *GenerateInitInstance(const name*); \ 53 static Short_t _R__UNIQUE_(R__dummyStreamer) = \ 54 GenerateInitInstance((name*)0x0)->SetStreamer(STREAMER); \ 55 R__UseDummy(_R__UNIQUE_(R__dummyStreamer)); \ 56 } 57 #endif 58 59 namespace ROOT { 60 void RegisterModule(); 61 } 62 63 #endif 64