Vcsn  2.8
Be Rational
partial-identity-expression.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vcsn/algos/tuple.hh>
4 #include <vcsn/core/rat/copy.hh>
5 #include <vcsn/dyn/value.hh>
6 
7 namespace vcsn
8 {
9 
10  /*--------------------------------.
11  | partial_identity(expression). |
12  `--------------------------------*/
13 
14  namespace dyn
15  {
16  namespace detail
17  {
19  template <typename ExpressionSet>
22  {
23  const auto& e = exp->as<ExpressionSet>();
24  auto rs = tuple_expressionset(e.valueset(), e.valueset());
25  return {rs, copy(e.valueset(), rs, e.value())};
26  }
27  }
28  }
29 }
auto tuple_expressionset(const ExpSets &... rss) -> expressionset< decltype(tuple_context(rss.context()...))>
Definition: tuple.hh:85
Definition: a-star.hh:8
value_impl< detail::expression_tag > expression
Definition: fwd.hh:31
expression partial_identity_expression(const expression &exp)
Bridge (partial_identity).
automaton copy(const automaton &aut)
Bridge.
Definition: copy.hh:435