Go to the source code of this file.
|
template<typename... ValueSets> |
using | vcsn::join_t = decltype(join(std::declval< ValueSets >()...)) |
| The type of the join of the ValueSets. More...
|
|
|
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...
|
|
#define VCSN_JOIN_SIMPLE |
( |
|
Lhs, |
|
|
|
Rhs |
|
) |
| |
Value: \
template <> \
struct join_impl<Lhs, Rhs> \
{ \
static type
join(Lhs, Rhs) \
{ \
return {}; \
} \
}
auto join(ValueSet1 vs1, ValueSet2 vs2, ValueSet3 vs3, VSs &&...vs)
The join of three (or more) valuesets.
Declare that Lhs v Rhs => Rhs.
Call this from the vcsn::detail namespace.
Definition at line 84 of file join.hh.