Jpp
JClassDef.hh
Go to the documentation of this file.
1 #ifndef __JROOT__JCLASSDEF__
2 #define __JROOT__JCLASSDEF__
3 
4 #include "TObject.h"
5 
6 /**
7  * \author mdejong
8  */
9 
10 namespace JROOT {}
11 namespace JPP { using namespace JROOT; }
12 
13 namespace JROOT {
14 
15  /**
16  * Test ROOT ClassDef.
17  */
18  template <class T>
19  class JClassDef
20  {
21  typedef char JSmall;
22  typedef long JBig;
23 
24  template<class C, C> struct check_type;
25 
26  template<class C> static JSmall JTest(check_type<const char* (C::*)(), &C::Class_Name>*);
27  template<class C> static JBig JTest(...);
28 
29  public:
30  enum { value = sizeof(JTest<T>(0)) == sizeof(JSmall) };
31  };
32 }
33 
34 #endif
JROOT
Auxiliary classes and methods for ROOT I/O.
Definition: JAbstractStreamer.hh:13
JROOT::JClassDef::JTest
static JSmall JTest(check_type< const char *(C::*)(), &C::Class_Name > *)
JROOT::JClassDef::JSmall
char JSmall
Definition: JClassDef.hh:21
JROOT::JClassDef::check_type
Definition: JClassDef.hh:24
JTOOLS::C
static const double C
Speed of light in vacuum [m/ns].
Definition: JConstants.hh:22
JLANG::JTest
Auxiliary base class for compile time evaluation of test.
Definition: JTest.hh:21
JROOT::JClassDef::JBig
long JBig
Definition: JClassDef.hh:22
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JAAnetToolkit.hh:37
JROOT::JClassDef::value
Definition: JClassDef.hh:30
JROOT::JClassDef
Test ROOT ClassDef.
Definition: JClassDef.hh:19