MEL
Microthread & Execution library
equal.h
1 #pragma once
7 #include <mpl/TypeTraits.h>
8 namespace mel
9 {
10  namespace mpl
11  {
12  //don't use Compare class directcly
13  template <bool,bool defaultValue>
14  struct Compare
15  {
16  template <class T> inline static bool compare( const T& t1, const T& t2 )
17  {
18  return t1 == t2;
19  }
20  };
21  //specialization when not operator== present. Return true
22  template <bool defaultValue >
23  struct Compare<false,defaultValue>
24  {
25  template <class T> inline static bool compare( const T& t1, const T& t2 )
26  {
27  return defaultValue;
28  }
29  };
30  template <bool defaultValue,class T> bool equal( const T& origin,const typename TypeTraits<T>::ParameterType value )
31  {
32  return Compare< mel::mpl::ComparableTraits<T>::result,defaultValue >::compare( origin,value );
33  }
34  }
35 }
Typical Traits for types.
Definition: Callback_Impl.h:11
Definition: equal.h:15