|
Adobe Source Libraries 2.0.0
A collection of C++ libraries.
|
Authors of a Concept representative F, intended as a template parameter to poly, will inherit from poly_base. The first template parameter for poly_base provides the virtual interface for the concept representative. The second template parameter for 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. More...
#include <poly.hpp>
Public Types | |
| typedef I | interface_type |
Public Member Functions | |
| template<typename T> | |
| poly_base (T x, typename boost::disable_if< std::is_base_of< poly_base, T > >::type *=0) | |
| 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 *=0) | |
| poly_base (const poly_base &x) | |
| poly_base (poly_base &&x) | |
| poly_base & | operator= (poly_base x) |
| ~poly_base () | |
| template<typename J> | |
| bool | is_dynamic_convertible_to () const |
| const std::type_info & | type_info () const |
| template<typename T> | |
| const T & | cast () const |
| template<typename T> | |
| T & | cast () |
| template<typename T> | |
| bool | cast (T &x) const |
| 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) |
| const interface_type * | operator-> () const |
| interface_type * | operator-> () |
| interface_type & | interface_ref () |
| const interface_type & | interface_ref () const |
| void * | storage () |
| const void * | storage () const |
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 | |
| template<typename T, template< typename > class U> | |
| struct | poly_base |
| void | swap (poly_base &x, poly_base &y) |
| typedef I interface_type |
|
explicit |
| ~poly_base | ( | ) |
|
static |
| bool is_dynamic_convertible_to | ( | ) | const |
| const std::type_info & type_info | ( | ) | const |
| const T & cast | ( | ) | const |
| T & cast | ( | ) |
| bool cast | ( | T & | x | ) | const |
| boost::enable_if< is_base_derived_or_same< I, J > >::type assign | ( | const poly_base< J, K > & | x | ) |
| const interface_type * operator-> | ( | ) | const |
| interface_type * operator-> | ( | ) |
| interface_type & interface_ref | ( | ) |
| const interface_type & interface_ref | ( | ) | const |
| void * storage | ( | ) |
| const void * storage | ( | ) | const |
|
friend |