1 #ifndef __JLANG__JCOMPARISONAVAILABLE__ 
    2 #define __JLANG__JCOMPARISONAVAILABLE__ 
   14 namespace JPP { 
using namespace JLANG; }
 
   26       template<
class U>   
static auto first_type(U*)   -> decltype(std::declval<typename U::first_type>());
 
   27       template<
typename>  
static auto first_type(...)  -> std::false_type;
 
   29       template<
class U>   
static auto second_type(U*)  -> decltype(std::declval<typename U::second_type>());
 
   30       template<
typename>  
static auto second_type(...) -> std::false_type;
 
   32       template<
class U>   
static auto value_type(U*)   -> decltype(std::declval<typename U::value_type>());
 
   33       template<
typename>  
static auto value_type(...)  -> std::false_type;
 
   36       static const bool has_first_type  = !std::is_same<std::false_type, decltype(first_type<T> (0))>::value;
 
   37       static const bool has_second_type = !std::is_same<std::false_type, decltype(second_type<T>(0))>::value;
 
   38       static const bool has_value_type  = !std::is_same<std::false_type, decltype(value_type<T> (0))>::value;
 
   56       template<
class U>   
static auto eq(U*)  -> decltype(std::declval<U>() == std::declval<U>());
 
   57       template<
class U>   
static auto ne(U*)  -> decltype(std::declval<U>() != std::declval<U>());
 
   58       template<
class U>   
static auto lt(U*)  -> decltype(std::declval<U>() <  std::declval<U>());
 
   59       template<
class U>   
static auto gt(U*)  -> decltype(std::declval<U>() >  std::declval<U>());
 
   60       template<
class U>   
static auto le(U*)  -> decltype(std::declval<U>() <= std::declval<U>());
 
   61       template<
class U>   
static auto ge(U*)  -> decltype(std::declval<U>() >= std::declval<U>());
 
   63       template<
typename>  
static auto eq(...) -> std::false_type;
 
   64       template<
typename>  
static auto ne(...) -> std::false_type;
 
   65       template<
typename>  
static auto lt(...) -> std::false_type;
 
   66       template<
typename>  
static auto gt(...) -> std::false_type;
 
   67       template<
typename>  
static auto le(...) -> std::false_type;
 
   68       template<
typename>  
static auto ge(...) -> std::false_type;
 
   71       static const bool has_eq = std::is_same<bool, decltype(eq<T>(0))>::value;  
 
   72       static const bool has_ne = std::is_same<bool, decltype(ne<T>(0))>::value;  
 
   73       static const bool has_lt = std::is_same<bool, decltype(lt<T>(0))>::value;  
 
   74       static const bool has_gt = std::is_same<bool, decltype(gt<T>(0))>::value;  
 
   75       static const bool has_le = std::is_same<bool, decltype(le<T>(0))>::value;  
 
   76       static const bool has_ge = std::is_same<bool, decltype(ge<T>(0))>::value;  
 
friend JNullType operator==(const T &first, const T &second)
Equal operator. 
 
Template definition of test availability of comparison operators. 
 
friend JNullType operator!=(const T &first, const T &second)
Not equal operator. 
 
static const bool has_value_type
 
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
 
static const bool has_second_type
 
T::second_type second_type
 
do set_variable OUTPUT_DIRECTORY $WORKDIR T
 
Auxiliary class for no type definition. 
 
static auto first_type(U *) -> decltype(std::declval< typename U::first_type >())
 
static auto second_type(U *) -> decltype(std::declval< typename U::second_type >())
 
static auto value_type(U *) -> decltype(std::declval< typename U::value_type >())
 
static const bool has_first_type
 
Template base class for data structures without equality capability.