Files | |
| file | default_ops.hh | 
Default implementations for standard Element operations.  | |
| file | element_op_traits.hh | 
Declaration of default arithmetical operator traits for Element.  | |
| file | element_ops.hh | 
Declarations of standard external operator delegations for Element.  | |
Classes | |
| struct | op_add_traits | 
| The type of the result of addition between two Element instances.  More... | |
| struct | op_sub_traits | 
| The type of the result of substraction between two Element instances.  More... | |
| struct | op_mul_traits | 
| The type of the result of multiplication between two Element instances.  More... | |
| struct | op_div_traits | 
| The type of the result of division between two Element instances.  More... | |
| struct | op_mod_traits | 
| The type of the result of modulus between two Element instances.  More... | |
Inequality operator for Structures | |
| This operator calls equality operator of sub-class.  | |
| template<typename S> bool | operator!= (const vcsn::Structure< S > &a, const vcsn::Structure< S > &b) | 
Functions | |
| template<typename S, typename T> bool | vcsn::op_contains (const Structure< S > &set, const T &value) | 
| Check whether a value is contained in a set.   | |
| template<typename S, typename T, typename U> bool | vcsn::op_eq (const Structure< S > &, const T &v1, const U &v2) | 
| Equality between two structured values.  | |
| template<typename S, typename V, typename T, typename U> bool | vcsn::op_eq (const Structure< S > &, const Structure< V > &, const T &v1, const U &v2) | 
| Equality between two structured values.  | |
| template<typename S, typename T, typename U> bool | vcsn::op_lt (const Structure< S > &, const T &v1, const U &v2) | 
| Ordered comparison between two structured values.  | |
| template<typename S, typename V, typename T, typename U> bool | vcsn::op_lt (const Structure< S > &, const Structure< V > &, const T &v1, const U &v2) | 
| Ordered comparison between two structured values.  | |
| template<typename S, typename R, typename T> R | vcsn::op_convert (const Structure< S > &se, SELECTOR(R), const T &data) | 
| Default conversion between value types with computation.  | |
| template<typename S, typename T> const T & | vcsn::op_convert (const Structure< S > &se, SELECTOR(T), const T &from_data) | 
| Pass-through conversion.  | |
| template<typename S, typename T> const T & | vcsn::op_convert (const Structure< S > &se, SELECTOR(T), const Structure< S > &from_se, const T &from_data) | 
| Pass-through conversion between compatible structures.  | |
| template<typename S, typename T> T | vcsn::op_default (const Structure< S > &se, SELECTOR(T)) | 
Default construction of values using Structure.  | |
| template<typename S, typename T> void | vcsn::op_swap (const Structure< S > &se, T &v1, T &v2) | 
| Default swap operator.  | |
| template<typename S, typename T, typename U> void | vcsn::op_assign (const Structure< S > &s, T &dst, const U &src) | 
| Assignement operator between two implementations of a Structure<S>.  | |
| template<typename S, typename T, typename U> void | vcsn::op_assign (const Structure< S > &s1, const Structure< S > &s2, T &dst, const U &src) | 
| Assignement operator between two implementations of two differents structures.  | |
| template<typename S, typename T, typename U> void | vcsn::op_in_add (const Structure< S > &s1, const Structure< S > &s2, T &dst, const U &arg) | 
| Addition in place operator between two different elements.  | |
| template<typename S, typename T, typename U> void | vcsn::op_in_sub (const Structure< S > &s1, const Structure< S > &s2, T &dst, const U &arg) | 
| Substraction in place operator between two different elements.  | |
| template<typename S, typename T, typename U> void | vcsn::op_in_mul (const Structure< S > &s1, const Structure< S > &s2, T &dst, const U &arg) | 
| Multiplication in place operator between two different elements.  | |
| template<typename S, typename T, typename U> void | vcsn::op_in_div (const Structure< S > &s1, const Structure< S > &s2, T &dst, const U &arg) | 
| Division in place operator between two different elements.  | |
| template<typename S, typename T, typename U> void | vcsn::op_in_mod (const Structure< S > &s1, const Structure< S > &s2, T &dst, const U &arg) | 
| Modulo in place operator between two different elements.  | |
| template<typename S, typename T, typename U> T | vcsn::op_add (const Structure< S > &s1, const Structure< S > &s2, const T &v1, const U &v2) | 
| Addition operator between two different elements.  | |
| template<typename S, typename T, typename U> T | vcsn::op_sub (const Structure< S > &s1, const Structure< S > &s2, const T &v1, const U &v2) | 
| Substraction operator between two different elements.  | |
| template<typename S, typename T, typename U> T | vcsn::op_mul (const Structure< S > &s1, const Structure< S > &s2, const T &v1, const U &v2) | 
| Multiplication operator between two different elements.  | |
| template<typename S, typename T, typename U> T | vcsn::op_div (const Structure< S > &s1, const Structure< S > &s2, const T &v1, const U &v2) | 
| Division operator between two different elements.  | |
| template<typename S, typename T, typename U> T | vcsn::op_mod (const Structure< S > &s1, const Structure< S > &s2, const T &v1, const U &v2) | 
| Modulo operator between two different elements.  | |
| template<typename S, typename St, typename T> St & | vcsn::op_rin (const Structure< S > &s, St &st, const T &v) | 
| Input stream operator.  | |
| template<typename S, typename St, typename T> St & | vcsn::op_rout (const Structure< S > &s, St &st, const T &v) | 
| Output stream operator.  | |
| template<typename S1, typename T1, typename S2, typename T2> bool | vcsn::operator< (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Comparison between Element instances.  | |
| template<typename S1, typename T1, typename S2, typename T2> bool | vcsn::operator> (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Comparison between Element instances.  | |
| template<typename S1, typename T1, typename S2, typename T2> bool | vcsn::operator<= (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Comparison between Element instances.  | |
| template<typename S1, typename T1, typename S2, typename T2> bool | vcsn::operator>= (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Comparison between Element instances.  | |
| template<typename S, typename T, typename U> bool | vcsn::operator< (const vcsn::Element< S, T > &e, const U &v) | 
| Comparison between Element and foreign values (left version).  | |
| template<typename S, typename T, typename U> bool | vcsn::operator> (const vcsn::Element< S, T > &e, const U &v) | 
| Comparison between Element and foreign values (left version).  | |
| template<typename S, typename T, typename U> bool | vcsn::operator>= (const vcsn::Element< S, T > &e, const U &v) | 
| Comparison between Element and foreign values (left version).  | |
| template<typename S, typename T, typename U> bool | vcsn::operator<= (const vcsn::Element< S, T > &e, const U &v) | 
| Comparison between Element and foreign values (left version).  | |
| template<typename U, typename S, typename T> bool | vcsn::operator< (const U &v, const vcsn::Element< S, T > &e) | 
| Comparison between Element and foreign values (right version).  | |
| template<typename U, typename S, typename T> bool | vcsn::operator> (const U &v, const vcsn::Element< S, T > &e) | 
| Comparison between Element and foreign values (right version).  | |
| template<typename U, typename S, typename T> bool | vcsn::operator>= (const U &v, const vcsn::Element< S, T > &e) | 
| Comparison between Element and foreign values (right version).  | |
| template<typename U, typename S, typename T> bool | vcsn::operator<= (const U &v, const vcsn::Element< S, T > &e) | 
| Comparison between Element and foreign values (right version).  | |
| template<typename S1, typename T1, typename S2, typename T2> bool | vcsn::operator== (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Equality between Element instances.  | |
| template<typename S, typename T, typename U> bool | vcsn::operator== (const vcsn::Element< S, T > &e, const U &v) | 
| Equality between Element and foreign values (left version).  | |
| template<typename U, typename S, typename T> bool | vcsn::operator== (const U &v, const vcsn::Element< S, T > &e) | 
| Equality between Element and foreign values (right version).  | |
| template<typename S1, typename T1, typename S2, typename T2> bool | vcsn::operator!= (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Difference between Element instances.  | |
| template<typename S, typename T, typename U> bool | vcsn::operator!= (const vcsn::Element< S, T > &e, const U &v) | 
| Difference between Element and foreign values (left version).  | |
| template<typename U, typename S, typename T> bool | vcsn::operator!= (const U &v, const vcsn::Element< S, T > &e) | 
| Difference between Element and foreign values (right version).  | |
| 
template<typename S1, typename T1, typename S2, typename T2> vcsn::op_add_traits< S1, S2, T1, T2 >::ret_t  | vcsn::operator+ (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Addition between Element instances.  | |
| template<typename S, typename T, typename U> vcsn::Element< S, T > | vcsn::operator+ (const vcsn::Element< S, T > &e, const U &v) | 
| Addition between Element and foreign values (left).  | |
| template<typename U, typename S, typename T> vcsn::Element< S, T > | vcsn::operator+ (const U &v, const vcsn::Element< S, T > &e) | 
| Addition between Element and foreign values (right).  | |
| 
template<typename S1, typename T1, typename S2, typename T2> vcsn::op_sub_traits< S1, S2, T1, T2 >::ret_t  | vcsn::operator- (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Substraction between Element instances.  | |
| template<typename S, typename T, typename U> vcsn::Element< S, T > | vcsn::operator- (const vcsn::Element< S, T > &e, const U &v) | 
| Substraction between Element and foreign values (left).  | |
| template<typename U, typename S, typename T> vcsn::Element< S, T > | vcsn::operator- (const U &v, const vcsn::Element< S, T > &e) | 
| Substraction between Element and foreign values (right).  | |
| 
template<typename S1, typename T1, typename S2, typename T2> vcsn::op_mul_traits< S1, S2, T1, T2 >::ret_t  | vcsn::operator * (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Multiplication between Element instances.  | |
| template<typename S, typename T, typename U> vcsn::Element< S, T > | vcsn::operator * (const vcsn::Element< S, T > &e, const U &v) | 
| Multiplication between Element and foreign values (left).  | |
| template<typename U, typename S, typename T> vcsn::Element< S, T > | vcsn::operator * (const U &v, const vcsn::Element< S, T > &e) | 
| Multiplication between Element and foreign values (right).  | |
| 
template<typename S1, typename T1, typename S2, typename T2> vcsn::op_div_traits< S1, S2, T1, T2 >::ret_t  | vcsn::operator/ (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Division between Element instances.  | |
| template<typename S, typename T, typename U> vcsn::Element< S, T > | vcsn::operator/ (const vcsn::Element< S, T > &e, const U &v) | 
| Division between Element and foreign values (left).  | |
| template<typename U, typename S, typename T> vcsn::Element< S, T > | vcsn::operator/ (const U &v, const vcsn::Element< S, T > &e) | 
| Division between Element and foreign values (right).  | |
| 
template<typename S1, typename T1, typename S2, typename T2> vcsn::op_mod_traits< S1, S2, T1, T2 >::ret_t  | vcsn::operator% (const vcsn::Element< S1, T1 > &e1, const vcsn::Element< S2, T2 > &e2) | 
| Modulus between Element instances.  | |
| template<typename S, typename T, typename U> vcsn::Element< S, T > | vcsn::operator% (const vcsn::Element< S, T > &e, const U &v) | 
| Modulus between Element and foreign values (left).  | |
| template<typename U, typename S, typename T> vcsn::Element< S, T > | vcsn::operator% (const U &v, const vcsn::Element< S, T > &e) | 
| Modulus between Element and foreign values (right.  | |
| template<typename S, typename T> vcsn::Element< S, T > | vcsn::operator- (const vcsn::Element< S, T > &) | 
| Unary negation of Element instances.  | |
| template<typename St, typename S, typename T> St & | vcsn::operator<< (St &s, const vcsn::Element< S, T > &e) | 
| Output to stream.  | |
| template<typename St, typename S, typename T> St & | vcsn::operator>> (St &s, const vcsn::Element< S, T > &e) | 
| Input from stream.  | |
| template<typename S, typename T1, typename T2> void | std::swap (vcsn::Element< S, T1 > &e1, vcsn::Element< S, T2 > &e2) | 
| Swap to Element instances with the same structure.   | |
| template<typename S, typename T> void | std::swap (vcsn::Element< S, T > &e1, T &v2) | 
| Swap between Element and foreign values (left).  | |
| template<typename T, typename S> void | std::swap (T &v1, vcsn::Element< S, T > &e2) | 
| Swap between Element and foreign values (right).  | |
      
  | 
  ||||||||||||
| 
 Check whether a value is contained in a set. 
  | 
  
      
  | 
  ||||||||||||
| 
 Swap to Element instances with the same structure. Calling this operators is valid only if the structural elements of the two Element instances are equal.  | 
  
 1.3.7