Authors of a Concept representative F, intended as a template parameter to adobe::poly, will inherit from adobe::poly_base. The first template parameter for adobe::poly_base provides the virtual interface for the concept representative. The second template parameter for adobe::poly_base must inherit from the Concept interface representative. The author's third duty is to provide forwarding functions in a their Concept representative. See the placeable_concept.hpp header file for details.
#include <poly.hpp>
List of all members.
Public Types |
typedef I | interface_type |
Public Member Functions |
template<typename T > |
poly_base & | assign (const T &x) |
template<typename J , template< typename > class K> |
boost::enable_if
< is_base_derived_or_same< I,
J > >::type | assign (const poly_base< J, K > &x) |
template<typename T > |
T & | cast () |
template<typename T > |
bool | cast (T &x) const |
template<typename T > |
const T & | cast () const |
interface_type & | interface_ref () |
const interface_type & | interface_ref () const |
template<typename J > |
bool | is_dynamic_convertible_to () const |
const interface_type * | operator-> () const |
interface_type * | operator-> () |
poly_base & | operator= (poly_base x) |
template<typename T > |
| poly_base (T x, typename boost::disable_if< boost::is_base_of< poly_base, T > >::type *=0) |
| poly_base (move_from< poly_base > x) |
| poly_base (const poly_base &x) |
template<typename J , template< typename > class K> |
| poly_base (const poly_base< J, K > &x, typename boost::enable_if< is_base_derived_or_same< I, J > >::type *dummy=0) |
const void * | storage () const |
void * | storage () |
const std::type_info & | type_info () const |
| ~poly_base () |
Static Public Member Functions |
template<typename J , template< typename > class K> |
static bool | is_dynamic_convertible_from (const poly_base< J, K > &x) |
Public Attributes |
implementation::storage_t | data_m |
Friends |
struct | poly_base |
void | swap (poly_base &x, poly_base &y) |
Detailed Description
template<typename I, template< typename > class Instance>
struct adobe::poly_base< I, Instance >
Definition at line 253 of file poly.hpp.
Member Typedef Documentation
Constructor & Destructor Documentation
poly_base |
( |
T |
x, |
|
|
typename boost::disable_if< boost::is_base_of< poly_base< I, Instance >, T > >::type * |
= 0 |
|
) |
| [explicit] |
poly_base |
( |
const poly_base< J, K > & |
x, |
|
|
typename boost::enable_if< is_base_derived_or_same< I, J > >::type * |
dummy = 0 |
|
) |
| [explicit] |
Member Function Documentation
boost::enable_if<is_base_derived_or_same<I, J> >::type assign |
( |
const poly_base< J, K > & |
x ) |
|
bool cast |
( |
T & |
x ) |
const |
static bool is_dynamic_convertible_from |
( |
const poly_base< J, K > & |
x ) |
[static] |
bool is_dynamic_convertible_to |
( |
) |
const |
const void* storage |
( |
) |
const |
const std::type_info& type_info |
( |
) |
const |
Friends And Related Function Documentation
Member Data Documentation
implementation::storage_t data_m |