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