MEL
Microthread & Execution library
AsPtr.h
1
#pragma once
2
#include <
mpl/TypeTraits.h
>
3
#include <mpl/equal.h>
4
namespace
mel
5
{
6
namespace
mpl
7
{
30
template
<
class
T>
class
AsPtr
31
{
32
private
:
33
T mObject;
34
public
:
35
AsPtr
(
const
T&
object
):mObject(
object
){}
36
AsPtr
(
const
AsPtr
&
object
):mObject(
object
.mObject ){}
37
inline
const
T* operator->()
const
38
{
39
return
&mObject;
40
}
41
inline
T* operator->()
42
{
43
return
&mObject;
44
}
45
inline
operator
T*()
46
{
47
return
&mObject;
48
}
49
inline
const
T& operator*()
const
50
{
51
return
mObject;
52
}
53
inline
T& operator*()
54
{
55
return
mObject;
56
}
57
inline
bool
operator == (
const
AsPtr
& ob2 )
const
;
58
};
59
// helper function for argument deduction
60
template
<
class
T>
AsPtr<T>
asPtr( T
object
)
61
{
62
return
AsPtr<T>
(
object
);
63
}
64
template
<
class
T>
65
bool
AsPtr<T>::operator == (
const
AsPtr& ob2 )
const
66
{
67
//return mObject == ob2.mObject;�como saber si tiene operator==
68
//return Compare<::mel::mpl::ComparableTraits<T>::Result,T >::compare( mObject,ob2.mObject );
69
//return Compare<::mel::mpl::ComparableTraits<T>::Result >::compare( mObject,ob2.mObject );
70
return
mel::mpl::equal<true>( mObject, ob2.mObject );
71
}
72
}
73
}
TypeTraits.h
Typical Traits for types.
mel::mpl::AsPtr
Definition:
AsPtr.h:31
mel
Definition:
Callback_Impl.h:11
include
mpl
AsPtr.h
Generated by
1.9.1