#ifndef __JROOT__JCLASSDEF__
#define __JROOT__JCLASSDEF__

#include "TObject.h"

/**
 * \author mdejong
 */

namespace JROOT {}
namespace JPP { using namespace JROOT; }

namespace JROOT {

  /**
   * Test ROOT ClassDef.
   */
  template <class T>
  class JClassDef
  {
    typedef char JSmall;
    typedef long JBig;

    template<class C, C> struct check_type;

    template<class C> static JSmall JTest(check_type<const char* (C::*)(), &C::Class_Name>*);
    template<class C> static JBig   JTest(...);

  public:
    enum { value = sizeof(JTest<T>(0)) == sizeof(JSmall) }; //!< true if ROOT compatible class; else false
  };
}

#endif