Vcsn  2.2a
Be Rational
join.hh File Reference
Include dependency graph for join.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  vcsn::detail::join_impl< V1, V2, Enable >
 A structure that implements the computation of join(V1, V2). More...
 

Namespaces

 vcsn
 
 vcsn::detail
 

Macros

#define VCSN_JOIN_SIMPLE(Lhs, Rhs)
 Declare that Lhs v Rhs => Rhs. More...
 

Typedefs

template<typename... ValueSets>
using vcsn::join_t = decltype(join(std::declval< ValueSets >()...))
 The type of the join of the ValueSets. More...
 

Functions

template<typename V1 , typename V2 >
join_impl< V1, V2 >::type vcsn::detail::join_ (V1 v1, V2 v2, int)
 Dealing with commutativity: two implementations of join_: forward and reversed, ordered by preference by the use of "0 prefers int to long" disambiguation rule. More...
 
template<typename V1 , typename V2 >
join_impl< V1, V2 >::type vcsn::detail::join_ (V2 v2, V1 v1, long)
 
template<typename ValueSet >
auto vcsn::join (const ValueSet &vs) -> ValueSet
 The join of a single valueset. More...
 
template<typename ValueSet1 , typename ValueSet2 >
auto vcsn::join (ValueSet1 vs1, ValueSet2 vs2) -> decltype(detail::join_(vs1, vs2, 0))
 The join of two valuesets. More...
 
template<typename ValueSet1 , typename ValueSet2 , typename ValueSet3 , typename... VSs>
auto vcsn::join (ValueSet1 vs1, ValueSet2 vs2, ValueSet3 vs3, VSs &&...vs)
 The join of three (or more) valuesets. More...
 

Macro Definition Documentation

#define VCSN_JOIN_SIMPLE (   Lhs,
  Rhs 
)
Value:
\
template <> \
struct join_impl<Lhs, Rhs> \
{ \
using type = Rhs; \
static type join(Lhs, Rhs) \
{ \
return {}; \
} \
}
auto join(ValueSet1 vs1, ValueSet2 vs2, ValueSet3 vs3, VSs &&...vs)
The join of three (or more) valuesets.
Definition: join.hh:71

Declare that Lhs v Rhs => Rhs.

Call this from the vcsn::detail namespace.

Definition at line 84 of file join.hh.