diff --git a/alib2str/src/automaton/AutomatonToStringComposer.cpp b/alib2str/src/automaton/AutomatonToStringComposer.cpp index ed609149b9150c5709e7c57317aca78d176f6b6f..5d6750640f5d14d4ff56636ddf9645af59e7a992 100644 --- a/alib2str/src/automaton/AutomatonToStringComposer.cpp +++ b/alib2str/src/automaton/AutomatonToStringComposer.cpp @@ -40,7 +40,15 @@ void AutomatonToStringComposer::compose(std::ostream& out, const DFA < SymbolTyp } } +template < class SymbolType, class StateType > +std::string AutomatonToStringComposer::compose ( const DFA < SymbolType, StateType > & automaton ) { + std::stringstream ss; + compose ( ss, automaton ); + return ss.str ( ); +} + auto AutomatonToStringComposerDFA = registration::OverloadRegister < AutomatonToStringComposer, void, DFA < > >(AutomatonToStringComposer::compose); +auto AutomatonToStringComposerDFA2 = registration::AbstractRegister < AutomatonToStringComposer, std::string, const DFA < > & > ( AutomatonToStringComposer::compose ); auto ObjectToStringComposerDFA = registration::OverloadRegister < alib::ObjectBaseDispatcher, void, DFA < > >( AutomatonToStringComposer::compose); template < class SymbolType, class StateType > diff --git a/alib2str/src/automaton/AutomatonToStringComposer.h b/alib2str/src/automaton/AutomatonToStringComposer.h index cbcd4582a7d7eb6605f398888f2ad06d696a2f5a..3c949f80128816fef46d46476496d479adeac214 100644 --- a/alib2str/src/automaton/AutomatonToStringComposer.h +++ b/alib2str/src/automaton/AutomatonToStringComposer.h @@ -40,6 +40,8 @@ public: template < class SymbolType, class StateType > static void compose(std::ostream& output, const DFA < SymbolType, StateType > & automaton); template < class SymbolType, class StateType > + static std::string compose(const DFA < SymbolType, StateType > & automaton); + template < class SymbolType, class StateType > static void compose(std::ostream& output, const NFA < SymbolType, StateType > & automaton); template < class SymbolType, class StateType > static void compose(std::ostream& output, const MultiInitialStateNFA < SymbolType, StateType > & automaton);