MEL
Microthread & Execution library
Ref.h
1 #pragma once
2 #include <mpl/TypeTraits.h>
3 
4 namespace mel
5 {
6  namespace mpl
7  {
8 
9  template <class T> struct Ref
10  {
11  // Ref( const Ref& r) : mObj( r.mObj ){}
12  Ref( T& obj):mObj(obj){}
13  inline operator T&() const
14  {
15  return mObj;
16  }
17  inline Ref& operator =( typename TypeTraits<T>::ParameterType ob2 )
18  {
19  mObj = ob2;
20  return *this;
21  }
22  bool operator==( const Ref& ob2 ) const
23  {
24  return &mObj == &ob2.mObj;
25  }
26  private:
27  T& mObj;
28  };
29  template <class T> Ref<T> createRef( T& obj)
30  {
31  return Ref<T>( obj );
32  }
33  }
34 }
Typical Traits for types.
Definition: BasicTypes.h:7
Definition: Callback_Impl.h:11
Definition: Ref.h:10