Adobe Source Libraries 1.49.0
A collection of C++ libraries.
Loading...
Searching...
No Matches

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_baseoperator= (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_baseassign (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_typeoperator-> () const
interface_typeoperator-> ()
interface_typeinterface_ref ()
const interface_typeinterface_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)

Detailed Description

template<typename I, template< typename > class Instance>
struct adobe::poly_base< I, Instance >

Definition at line 255 of file poly.hpp.

Member Typedef Documentation

◆ interface_type

template<typename I, template< typename > class Instance>
typedef I interface_type

Definition at line 260 of file poly.hpp.

Constructor & Destructor Documentation

◆ poly_base() [1/4]

template<typename I, template< typename > class Instance>
template<typename T>
poly_base ( T x,
typename boost::disable_if< std::is_base_of< poly_base< I, Instance >, T > >::type * = 0 )
explicit

Definition at line 265 of file poly.hpp.

◆ poly_base() [2/4]

template<typename I, template< typename > class Instance>
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 )
explicit

Definition at line 271 of file poly.hpp.

◆ poly_base() [3/4]

template<typename I, template< typename > class Instance>
poly_base ( const poly_base< I, Instance > & x)

Definition at line 278 of file poly.hpp.

◆ poly_base() [4/4]

template<typename I, template< typename > class Instance>
poly_base ( poly_base< I, Instance > && x)

Definition at line 280 of file poly.hpp.

◆ ~poly_base()

template<typename I, template< typename > class Instance>
~poly_base ( )

Definition at line 308 of file poly.hpp.

Member Function Documentation

◆ operator=()

template<typename I, template< typename > class Instance>
poly_base & operator= ( poly_base< I, Instance > x)

Definition at line 303 of file poly.hpp.

◆ is_dynamic_convertible_from()

template<typename I, template< typename > class Instance>
template<typename J, template< typename > class K>
bool is_dynamic_convertible_from ( const poly_base< J, K > & x)
static

Definition at line 311 of file poly.hpp.

◆ is_dynamic_convertible_to()

template<typename I, template< typename > class Instance>
template<typename J>
bool is_dynamic_convertible_to ( ) const

Definition at line 317 of file poly.hpp.

◆ type_info()

template<typename I, template< typename > class Instance>
const std::type_info & type_info ( ) const

Definition at line 322 of file poly.hpp.

◆ cast() [1/3]

template<typename I, template< typename > class Instance>
template<typename T>
const T & cast ( ) const

Definition at line 325 of file poly.hpp.

◆ cast() [2/3]

template<typename I, template< typename > class Instance>
template<typename T>
T & cast ( )

Definition at line 332 of file poly.hpp.

◆ cast() [3/3]

template<typename I, template< typename > class Instance>
template<typename T>
bool cast ( T & x) const

Definition at line 339 of file poly.hpp.

◆ assign() [1/2]

template<typename I, template< typename > class Instance>
template<typename T>
poly_base & assign ( const T & x)

Definition at line 347 of file poly.hpp.

◆ assign() [2/2]

template<typename I, template< typename > class Instance>
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)

Definition at line 360 of file poly.hpp.

◆ operator->() [1/2]

template<typename I, template< typename > class Instance>
const interface_type * operator-> ( ) const

Definition at line 367 of file poly.hpp.

◆ operator->() [2/2]

template<typename I, template< typename > class Instance>
interface_type * operator-> ( )

Definition at line 369 of file poly.hpp.

◆ interface_ref() [1/2]

template<typename I, template< typename > class Instance>
interface_type & interface_ref ( )

Definition at line 371 of file poly.hpp.

◆ interface_ref() [2/2]

template<typename I, template< typename > class Instance>
const interface_type & interface_ref ( ) const

Definition at line 373 of file poly.hpp.

◆ storage() [1/2]

template<typename I, template< typename > class Instance>
void * storage ( )

Definition at line 377 of file poly.hpp.

◆ storage() [2/2]

template<typename I, template< typename > class Instance>
const void * storage ( ) const

Definition at line 378 of file poly.hpp.

◆ poly_base

template<typename I, template< typename > class Instance>
template<typename T, template< typename > class U>
friend struct poly_base
friend

Definition at line 258 of file poly.hpp.

◆ swap

template<typename I, template< typename > class Instance>
void swap ( poly_base< I, Instance > & x,
poly_base< I, Instance > & y )
friend

Definition at line 282 of file poly.hpp.

Member Data Documentation

◆ data_m

template<typename I, template< typename > class Instance>
implementation::storage_t data_m

Definition at line 380 of file poly.hpp.