QxOrm  1.4.9
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 std::conditional
< qx::trait::is_smart_ptr_base_of
< B, D >::value,
std::true_type,
std::false_type >::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 std::conditional
< std::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 std::conditional
< std::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 std::conditional
< std::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 std::conditional
< std::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 std::conditional
< std::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const QSharedDataPointer< V > &, const QSharedDataPointer< W > &)
template<typename V , typename W >
static std::conditional
< std::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const QSharedPointer< V > &, const QSharedPointer< W > &)
template<typename V , typename W >
static std::conditional
< std::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const QWeakPointer< V > &, const QWeakPointer< W > &)
template<typename V , typename W >
static std::conditional
< std::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const qx::dao::ptr< V > &, const qx::dao::ptr< W > &)
template<typename V , typename W >
static std::conditional
< std::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const std::unique_ptr< V > &, const std::unique_ptr< W > &)
template<typename V , typename W >
static std::conditional
< std::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const std::shared_ptr< V > &, const std::shared_ptr< W > &)
template<typename V , typename W >
static std::conditional
< std::is_base_of< V, W >
::value, char, int >::type 
removeSmartPtr (const std::weak_ptr< V > &, const std::weak_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
static std::unique_ptr< B > * b_std_unique_ptr
static std::shared_ptr< B > * b_std_shared_ptr
static std::weak_ptr< B > * b_std_weak_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 76 of file is_smart_ptr_base_of.h.


Member Typedef Documentation

template<typename B , typename D >
typedef std::conditional<qx::trait::is_smart_ptr_base_of<B, D>::value, std::true_type, std::false_type>::type qx::trait::is_smart_ptr_base_of< B, D >::type

Definition at line 149 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 140 of file is_smart_ptr_base_of.h.

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

Definition at line 141 of file is_smart_ptr_base_of.h.

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

Definition at line 142 of file is_smart_ptr_base_of.h.

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

Definition at line 143 of file is_smart_ptr_base_of.h.

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

Definition at line 147 of file is_smart_ptr_base_of.h.


Member Function Documentation

template<typename B , typename D >
template<typename V , typename W >
static std::conditional<std::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 std::conditional<std::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 std::conditional<std::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 std::conditional<std::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 std::conditional<std::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 std::conditional<std::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 std::conditional<std::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 std::conditional<std::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 >
template<typename V , typename W >
static std::conditional<std::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const std::unique_ptr< V > &  ,
const std::unique_ptr< W > &   
) [static, private]
template<typename B , typename D >
template<typename V , typename W >
static std::conditional<std::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const std::shared_ptr< V > &  ,
const std::shared_ptr< W > &   
) [static, private]
template<typename B , typename D >
template<typename V , typename W >
static std::conditional<std::is_base_of<V, W>::value, char, int>::type qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( const std::weak_ptr< V > &  ,
const std::weak_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 119 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 127 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 124 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 125 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 126 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 131 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 132 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 133 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 134 of file is_smart_ptr_base_of.h.

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

Definition at line 137 of file is_smart_ptr_base_of.h.

template<typename B , typename D >
std::unique_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_std_unique_ptr [static, private]

Definition at line 136 of file is_smart_ptr_base_of.h.

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

Definition at line 138 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 120 of file is_smart_ptr_base_of.h.


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