stlab.adobe.com Adobe Systems Incorporated

poly.hpp File Reference

#include <adobe/config.hpp>
#include <boost/type_traits/is_base_of.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <boost/type_traits/remove_pointer.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/or.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/type_traits/has_nothrow_constructor.hpp>
#include <adobe/move.hpp>
#include <adobe/implementation/swap.hpp>
#include <adobe/typeinfo.hpp>

Go to the source code of this file.

Classes

struct  optimized_storage_type< ConcreteType, Interface >
 Authors of adobe::poly concept representatives must derive their instance class from this. See of adobe::poly_placeable_instance, for example. This metafunction is used in the implementation of the small storage optimization. More...
class  poly< F >
 adobe::poly<foo> will be a runtime polymorphic value type wrapper modelling a concept represented by foo More...
struct  poly_base< I, Instance >
 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. More...
struct  poly_copyable_interface
 Abstract interface providing signatures needed to implement "handle" objects modeling a Value (Copyable/Movable) concept. Authors of adobe::poly classes must derive their interfaces from this. See adobe::poly_placeable_interface for an example. More...

Namespaces

namespace  adobe

Functions

template<class T >
bool operator!= (const poly< T > &x, const poly< T > &y)
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 >
poly_cast (const poly< U > *x)
template<typename T , typename U >
poly_cast (poly< U > *x)
template<typename T , typename U >
poly_cast (const poly< U > &x)
template<typename T , typename U >
poly_cast (poly< U > &x)

Copyright © 2006-2007 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google