poly.hpp
Go to the documentation of this file.
7 /*************************************************************************************************/ 28 /*************************************************************************************************/ 57 /*************************************************************************************************/ 84 /*************************************************************************************************/ 88 /*************************************************************************************************/ 92 /*************************************************************************************************/ 134 /*************************************************************************************************/ 174 /*************************************************************************************************/ 181 enum { value = sizeof(T) <= N && (boost::has_nothrow_constructor<typename T::value_type>::value || 186 /*************************************************************************************************/ 203 /*************************************************************************************************/ 219 /*************************************************************************************************/ 223 /*************************************************************************************************/ 228 /*************************************************************************************************/ 239 boost::mpl::if_<implementation::is_small<implementation::poly_state_local<ConcreteType, Interface> >, 245 /*************************************************************************************************/ 323 return dynamic_cast<const J*>(static_cast<const poly_copyable_interface*>(&interface_ref())) != NULL; 401 /*************************************************************************************************/ 427 poly& operator=(poly x) { static_cast<F&>(*this) = adobe::move(static_cast<F&>(x)); return *this; } 432 /*************************************************************************************************/ 458 /*************************************************************************************************/ 477 /*************************************************************************************************/ 504 /*************************************************************************************************/ 524 /*************************************************************************************************/ 542 /*************************************************************************************************/ 546 /*************************************************************************************************/ 550 /*************************************************************************************************/
bool is_dynamic_convertible_to() const Definition: poly.hpp:321 virtual ~poly_copyable_interface() Definition: poly.hpp:81 bool operator==(const circular_queue< T > &x, const circular_queue< T > &y) Definition: circular_queue.hpp:421 bool operator!=(const forest< T > &x, const forest< T > &y) Definition: forest.hpp:719 virtual poly_copyable_interface * clone(void *) const =0 boost::enable_if< is_base_derived_or_same< I, J > >::type assign(const poly_base< J, K > &x) Definition: poly.hpp:367 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. Definition: poly.hpp:259 static const int test Definition: dictionary_arg_stream.hpp:220 static bool is_dynamic_convertible_from(const poly_base< J, K > &x) Definition: poly.hpp:315 Definition: functional.hpp:26 adobe::poly<foo> will be a runtime polymorphic value type wrapper modelling a concept represented by ... Definition: poly.hpp:414 Abstract interface providing signatures needed to implement "handle" objects modeling a Value (Copyab... Definition: poly.hpp:66 Authors of adobe::poly concept representatives must derive their instance class from this... Definition: poly.hpp:238 poly_base(T x, typename boost::disable_if< boost::is_base_of< poly_base, T > >::type *=0) Definition: poly.hpp:269 poly_base(const poly_base< J, K > &x, typename boost::enable_if< is_base_derived_or_same< I, J > >::type *dummy=0) Definition: poly.hpp:275 virtual void exchange(poly_copyable_interface &x)=0 virtual void * cast()=0 virtual void assign(const poly_copyable_interface &x)=0 virtual const std::type_info & type_info() const =0 virtual poly_copyable_interface * move_clone(void *)=0 |