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 /*************************************************************************************************/
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 Definition: poly.hpp:414 Abstract interface providing signatures needed to implement "handle" objects modeling a Value (Copyab... Definition: poly.hpp:66 void swap(circular_queue< T > &, circular_queue< T > &) const interface_type & interface_ref() const Definition: poly.hpp:385 bool is_dynamic_convertible_to() const Definition: poly.hpp:321 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 |