Vcsn  2.3
Be Rational
copy.hh File Reference
#include <unordered_map>
#include <vcsn/algos/fwd.hh>
#include <vcsn/core/automaton-decorator.hh>
#include <vcsn/core/automaton.hh>
#include <vcsn/core/fwd.hh>
#include <vcsn/core/mutable-automaton.hh>
#include <vcsn/core/rat/copy.hh>
#include <vcsn/dyn/automaton.hh>
#include <vcsn/dyn/context.hh>
#include <vcsn/dyn/types.hh>
#include <vcsn/dyn/value.hh>
#include <vcsn/misc/attributes.hh>
#include <vcsn/misc/set.hh>
#include <vcsn/misc/unordered_set.hh>
Include dependency graph for copy.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  vcsn::detail::real_context_impl< Aut >
 When we copy a focus automaton, we create another focus automaton. More...
 
struct  vcsn::detail::real_context_impl< Aut >
 When we copy a focus automaton, we create another focus automaton. More...
 
struct  vcsn::detail::real_context_impl< focus_automaton< Tape, Aut > >
 
struct  vcsn::detail::real_context_impl< automaton_decorator< Aut > >
 Be recursive on automaton wrappers. More...
 
class  vcsn::detail::copier< AutIn, AutOut >
 Copy an automaton. More...
 

Namespaces

 vcsn
 
 vcsn::detail
 
 vcsn::dyn
 
 vcsn::dyn::detail
 

Functions

template<Automaton Aut>
auto vcsn::detail::real_context (const Aut &aut) -> decltype(real_context_impl< Aut >::context(aut))
 For a focus automaton, its genuine context (not the visible one), and for all the other automata, their context. More...
 
template<Automaton AutIn, Automaton AutOut = fresh_automaton_t_of<AutIn>>
AutOut vcsn::make_fresh_automaton (const AutIn &model)
 Create an empty, mutable, automaton, based on another one. More...
 
template<Automaton AutIn, Automaton AutOut>
detail::copier< AutIn, AutOut > vcsn::make_copier (const AutIn &in, AutOut &out, bool safe=true)
 Build an automaton copier. More...
 
template<Automaton AutIn, Automaton AutOut, typename KeepState , typename KeepTrans >
void vcsn::copy_into (const AutIn &in, AutOut &out, KeepState keep_state, KeepTrans keep_trans)
 Copy selected states and transitions of an automaton. More...
 
template<Automaton AutIn, Automaton AutOut, typename KeepState >
void vcsn::copy_into (const AutIn &in, AutOut &out, KeepState keep_state)
 Copy the selected states an automaton. More...
 
template<Automaton AutIn, Automaton AutOut>
void vcsn::copy_into (const AutIn &in, AutOut &out)
 Copy an automaton. More...
 
template<Automaton AutIn, Automaton AutOut>
void vcsn::copy_into (const AutIn &in, AutOut &out, bool safe)
 Copy an automaton. More...
 
template<Automaton AutIn, Automaton AutOut = fresh_automaton_t_of<AutIn>, typename KeepState , typename KeepTrans >
auto vcsn::copy (const AutIn &input, KeepState keep_state, KeepTrans keep_trans) -> decltype(keep_state(input->null_state()), keep_trans(input->null_transition()), make_fresh_automaton< AutIn, AutOut >(input))
 A copy of input keeping only its states that are accepted by keep_state, and transitions accepted by keep_trans. More...
 
template<Automaton AutIn, Automaton AutOut = fresh_automaton_t_of<AutIn>, typename KeepState >
auto vcsn::copy (const AutIn &input, KeepState keep_state) -> decltype(keep_state(input->null_state()), make_fresh_automaton< AutIn, AutOut >(input))
 A copy of input. More...
 
template<Automaton AutIn, Automaton AutOut = fresh_automaton_t_of<AutIn>>
AutOut vcsn::copy (const AutIn &input)
 A copy of input. More...
 
template<Automaton AutIn, Automaton AutOut = fresh_automaton_t_of<AutIn>, typename States >
auto vcsn::copy (const AutIn &input, const States &ss) -> decltype(*ss.begin()==input->null_state(), make_fresh_automaton< AutIn, AutOut >(input))
 A copy of input keeping only its states that are members of states. More...
 
template<Automaton AutIn, Automaton AutOut = fresh_automaton_t_of<AutIn>, typename States , typename Trans >
auto vcsn::copy (const AutIn &input, const States &ss, const Trans &ts) -> decltype(*ss.begin()==input->null_state(), *ts.begin()==input->null_transition(), make_fresh_automaton< AutIn, AutOut >(input))
 A copy of input keeping only its states that are members of container ss, and transitions that are members of container ts. More...
 
template<Automaton AutIn, Automaton AutOut = fresh_automaton_t_of<AutIn>, typename Transitions >
auto vcsn::copy (const AutIn &input, const Transitions &ts) -> decltype(*ts.begin()==input->null_transition(), make_fresh_automaton< AutIn, AutOut >(input))
 A copy of input keeping only its transitions that are members of ts, and the states on which these transitions depend. More...
 
template<Automaton Aut, typename Ctx >
automaton vcsn::dyn::detail::copy_convert (const automaton &aut, const context &ctx)
 Bridge (copy). More...
 
template<Automaton Aut>
automaton vcsn::dyn::detail::copy (const automaton &aut)
 Bridge. More...
 
template<typename ExpSet , typename Context , typename Identities >
expression vcsn::dyn::detail::copy_expression (const expression &exp, const context &ctx, identities ids)
 Bridge (copy). More...