QxOrm  1.4.3
C++ Object Relational Mapping library

qx::trait::is_smart_ptr_base_of<B, D>::value : return true if B and D are smart-pointers of boost, Qt or QxOrm libraries and if (*B) is a base class of (*D), otherwise return false More...

#include <is_smart_ptr_base_of.h>

List of all members.

Public Types

enum  { value = (qx::trait::is_smart_ptr_base_of<B, D>::value_2 || qx::trait::is_smart_ptr_base_of<B, D>::value_3) }
typedef boost::mpl::if_c
< qx::trait::is_smart_ptr_base_of
< B, D >::value,
boost::mpl::true_,
boost::mpl::false_ >::type 
type

Private Types

enum  { value_0 = (qx::trait::is_smart_ptr<D>::value) }
enum  { value_1 = (qx::trait::is_smart_ptr<B>::value) }
enum  { value_2 = ((value_0 && value_1) ? qx_smart_ptr_base_of_test_0() : 0) }
enum  { value_3 = ((value_0 && ! value_1) ? qx_smart_ptr_base_of_all_test() : 0) }

Static Private Member Functions

template<typename V , typename W >
static boost::mpl::if_c
< boost::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const boost::scoped_ptr< V > &, const boost::scoped_ptr< W > &)
template<typename V , typename W >
static boost::mpl::if_c
< boost::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const boost::shared_ptr< V > &, const boost::shared_ptr< W > &)
template<typename V , typename W >
static boost::mpl::if_c
< boost::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const boost::weak_ptr< V > &, const boost::weak_ptr< W > &)
template<typename V , typename W >
static boost::mpl::if_c
< boost::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const boost::intrusive_ptr< V > &, const boost::intrusive_ptr< W > &)
template<typename V , typename W >
static boost::mpl::if_c
< boost::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const QSharedDataPointer< V > &, const QSharedDataPointer< W > &)
template<typename V , typename W >
static boost::mpl::if_c
< boost::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const QSharedPointer< V > &, const QSharedPointer< W > &)
template<typename V , typename W >
static boost::mpl::if_c
< boost::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const QWeakPointer< V > &, const QWeakPointer< W > &)
template<typename V , typename W >
static boost::mpl::if_c
< boost::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const qx::dao::ptr< V > &, const qx::dao::ptr< W > &)
static int removeSmartPtr (...)

Static Private Attributes

static B b
static D d
static boost::scoped_ptr< B > * b_boost_scoped_ptr
static boost::shared_ptr< B > * b_boost_shared_ptr
static boost::weak_ptr< B > * b_boost_weak_ptr
static boost::intrusive_ptr< B > * b_boost_intrusive_ptr
static QSharedDataPointer< B > * b_qt_shared_data_ptr
static QSharedPointer< B > * b_qt_shared_ptr
static QWeakPointer< B > * b_qt_weak_ptr
static qx::dao::ptr< B > * b_qx_dao_ptr

Detailed Description

template<typename B, typename D>
class qx::trait::is_smart_ptr_base_of< B, D >

qx::trait::is_smart_ptr_base_of<B, D>::value : return true if B and D are smart-pointers of boost, Qt or QxOrm libraries and if (*B) is a base class of (*D), otherwise return false

Definition at line 91 of file is_smart_ptr_base_of.h.


Member Typedef Documentation

template<typename B , typename D >
typedef boost::mpl::if_c<qx::trait::is_smart_ptr_base_of<B, D>::value, boost::mpl::true_, boost::mpl::false_>::type qx::trait::is_smart_ptr_base_of< B, D >::type

Definition at line 163 of file is_smart_ptr_base_of.h.


Member Enumeration Documentation

template<typename B , typename D >
anonymous enum [private]
Enumerator:
value_0 

Definition at line 154 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
anonymous enum [private]
Enumerator:
value_1 

Definition at line 155 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
anonymous enum [private]
Enumerator:
value_2 

Definition at line 156 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
anonymous enum [private]
Enumerator:
value_3 

Definition at line 157 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
anonymous enum
Enumerator:
value 

Definition at line 161 of file is_smart_ptr_base_of.h.


Member Function Documentation

template<typename B , typename D >
template<typename V , typename W >
static boost::mpl::if_c<boost::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const boost::scoped_ptr< V > &  ,
const boost::scoped_ptr< W > &   
) [static, private]
template<typename B , typename D >
template<typename V , typename W >
static boost::mpl::if_c<boost::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const boost::shared_ptr< V > &  ,
const boost::shared_ptr< W > &   
) [static, private]
template<typename B , typename D >
template<typename V , typename W >
static boost::mpl::if_c<boost::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const boost::weak_ptr< V > &  ,
const boost::weak_ptr< W > &   
) [static, private]
template<typename B , typename D >
template<typename V , typename W >
static boost::mpl::if_c<boost::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const boost::intrusive_ptr< V > &  ,
const boost::intrusive_ptr< W > &   
) [static, private]
template<typename B , typename D >
template<typename V , typename W >
static boost::mpl::if_c<boost::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const QSharedDataPointer< V > &  ,
const QSharedDataPointer< W > &   
) [static, private]
template<typename B , typename D >
template<typename V , typename W >
static boost::mpl::if_c<boost::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const QSharedPointer< V > &  ,
const QSharedPointer< W > &   
) [static, private]
template<typename B , typename D >
template<typename V , typename W >
static boost::mpl::if_c<boost::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const QWeakPointer< V > &  ,
const QWeakPointer< W > &   
) [static, private]
template<typename B , typename D >
template<typename V , typename W >
static boost::mpl::if_c<boost::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const qx::dao::ptr< V > &  ,
const qx::dao::ptr< W > &   
) [static, private]
template<typename B , typename D >
static int qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr (   ...) [static, private]

Member Data Documentation

template<typename B , typename D >
B qx::trait::is_smart_ptr_base_of< B, D >::b [static, private]

Definition at line 134 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
boost::intrusive_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_boost_intrusive_ptr [static, private]

Definition at line 140 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
boost::scoped_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_boost_scoped_ptr [static, private]

Definition at line 137 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
boost::shared_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_boost_shared_ptr [static, private]

Definition at line 138 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
boost::weak_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_boost_weak_ptr [static, private]

Definition at line 139 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
QSharedDataPointer<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_qt_shared_data_ptr [static, private]

Definition at line 141 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
QSharedPointer<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_qt_shared_ptr [static, private]

Definition at line 142 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
QWeakPointer<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_qt_weak_ptr [static, private]

Definition at line 143 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
qx::dao::ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_qx_dao_ptr [static, private]

Definition at line 144 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
D qx::trait::is_smart_ptr_base_of< B, D >::d [static, private]

Definition at line 135 of file is_smart_ptr_base_of.h.


The documentation for this class was generated from the following file: