QxOrm 1.4.9
C++ Object Relational Mapping library
Loading...
Searching...
No Matches

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>

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

◆ type

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

◆ anonymous enum

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

Definition at line 140 of file is_smart_ptr_base_of.h.

◆ anonymous enum

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

Definition at line 141 of file is_smart_ptr_base_of.h.

◆ anonymous enum

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

Definition at line 142 of file is_smart_ptr_base_of.h.

◆ anonymous enum

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

Definition at line 143 of file is_smart_ptr_base_of.h.

◆ anonymous enum

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

Definition at line 147 of file is_smart_ptr_base_of.h.

Member Function Documentation

◆ removeSmartPtr() [1/12]

template<typename B , typename D >
static int qx::trait::is_smart_ptr_base_of< B, D >::removeSmartPtr ( ...)
staticprivate

◆ removeSmartPtr() [2/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [3/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [4/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [5/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [6/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [7/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [8/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [9/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [10/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [11/12]

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 > &  )
staticprivate

◆ removeSmartPtr() [12/12]

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 > &  )
staticprivate

Member Data Documentation

◆ b

template<typename B , typename D >
B qx::trait::is_smart_ptr_base_of< B, D >::b
staticprivate

Definition at line 119 of file is_smart_ptr_base_of.h.

◆ b_boost_intrusive_ptr

template<typename B , typename D >
boost::intrusive_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_boost_intrusive_ptr
staticprivate

Definition at line 127 of file is_smart_ptr_base_of.h.

◆ b_boost_scoped_ptr

template<typename B , typename D >
boost::scoped_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_boost_scoped_ptr
staticprivate

Definition at line 124 of file is_smart_ptr_base_of.h.

◆ b_boost_shared_ptr

template<typename B , typename D >
boost::shared_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_boost_shared_ptr
staticprivate

Definition at line 125 of file is_smart_ptr_base_of.h.

◆ b_boost_weak_ptr

template<typename B , typename D >
boost::weak_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_boost_weak_ptr
staticprivate

Definition at line 126 of file is_smart_ptr_base_of.h.

◆ b_qt_shared_data_ptr

template<typename B , typename D >
QSharedDataPointer<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_qt_shared_data_ptr
staticprivate

Definition at line 131 of file is_smart_ptr_base_of.h.

◆ b_qt_shared_ptr

template<typename B , typename D >
QSharedPointer<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_qt_shared_ptr
staticprivate

Definition at line 132 of file is_smart_ptr_base_of.h.

◆ b_qt_weak_ptr

template<typename B , typename D >
QWeakPointer<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_qt_weak_ptr
staticprivate

Definition at line 133 of file is_smart_ptr_base_of.h.

◆ b_qx_dao_ptr

template<typename B , typename D >
qx::dao::ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_qx_dao_ptr
staticprivate

Definition at line 134 of file is_smart_ptr_base_of.h.

◆ b_std_shared_ptr

template<typename B , typename D >
std::shared_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_std_shared_ptr
staticprivate

Definition at line 137 of file is_smart_ptr_base_of.h.

◆ b_std_unique_ptr

template<typename B , typename D >
std::unique_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_std_unique_ptr
staticprivate

Definition at line 136 of file is_smart_ptr_base_of.h.

◆ b_std_weak_ptr

template<typename B , typename D >
std::weak_ptr<B>* qx::trait::is_smart_ptr_base_of< B, D >::b_std_weak_ptr
staticprivate

Definition at line 138 of file is_smart_ptr_base_of.h.

◆ d

template<typename B , typename D >
D qx::trait::is_smart_ptr_base_of< B, D >::d
staticprivate

Definition at line 120 of file is_smart_ptr_base_of.h.


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