Adobe Source Libraries 1.49.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 |