Support for creating Regular, runtime-polymorphic objects with value semantics.
More...
|
template<class J, template< typename > class K> |
boost::enable_if< implementation::has_equals< J >, bool >::type | operator== (const poly_base< J, K > &x, const poly_base< J, K > &y) |
template<typename T, typename U> |
T | poly_cast (poly< U > &x) |
template<typename T, typename U> |
T | poly_cast (const poly< U > &x) |
template<typename T, typename U> |
T | poly_cast (poly< U > *x) |
template<typename T, typename U> |
T | poly_cast (const poly< U > *x) |
template<class T> |
bool | operator!= (const poly< T > &x, const poly< T > &y) |
| inequality comparison
|
◆ operator==()
template<class J, template< typename > class K>
boost::enable_if< implementation::has_equals< J >, bool >::type operator== |
( |
const poly_base< J, K > & | x, |
|
|
const poly_base< J, K > & | y ) |
◆ poly_cast() [1/4]
template<typename T, typename U>
T poly_cast |
( |
poly< U > & | x | ) |
|
Polymorphic cast from poly <U> & to T&, where T is another poly instance. Throws bad_cast if x does not dynamically model T's Concept requirement. For example,
poly<foo> will be a runtime polymorphic value type wrapper modelling a concept represented by foo
Definition at line 441 of file poly.hpp.
◆ poly_cast() [2/4]
template<typename T, typename U>
T poly_cast |
( |
const poly< U > & | x | ) |
|
◆ poly_cast() [3/4]
template<typename T, typename U>
T poly_cast |
( |
poly< U > * | x | ) |
|
Polymorphic cast from poly <U> * to T *, where T is another poly instance. Returns NULL if x does not dynamically model T's Concept requirement. For example,
Definition at line 485 of file poly.hpp.
◆ poly_cast() [4/4]
template<typename T, typename U>
T poly_cast |
( |
const poly< U > * | x | ) |
|
◆ operator!=()
template<class T>
bool operator!= |
( |
const poly< T > & | x, |
|
|
const poly< T > & | y ) |