diff --git a/alib2data/src/regexp/RegExpAlphabetGetter.cpp b/alib2data/src/regexp/RegExpAlphabetGetter.cpp index c34882045187d1c11e8b01bb0a441c8dcb15ea7d..02a719fffbe266c17eb9ae495e374c7e71bb96cc 100644 --- a/alib2data/src/regexp/RegExpAlphabetGetter.cpp +++ b/alib2data/src/regexp/RegExpAlphabetGetter.cpp @@ -10,19 +10,19 @@ namespace regexp { void RegExpAlphabetGetter::Visit(void* userData, const UnboundedRegExp& regexp) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = regexp.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = ®exp.getAlphabet(); } void RegExpAlphabetGetter::Visit(void* userData, const FormalRegExp& regexp) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = regexp.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = ®exp.getAlphabet(); } -std::set<alphabet::Symbol> RegExpAlphabetGetter::getAlphabet(const RegExp& regexp) const { - std::set<alphabet::Symbol> res; +const std::set<alphabet::Symbol>& RegExpAlphabetGetter::getAlphabet(const RegExp& regexp) const { + const std::set<alphabet::Symbol>* res; regexp.getData().Accept((void*) &res, *this); - return std::move(res); + return *res; } const RegExpAlphabetGetter RegExpAlphabetGetter::REG_EXP_ALPHABET_GETTER; diff --git a/alib2data/src/regexp/RegExpAlphabetGetter.h b/alib2data/src/regexp/RegExpAlphabetGetter.h index d278c1153f30724d736d658a002ffb4f3aacc72a..88cea5e1c10a5e93c58439c0dce6caa9a2b19095 100644 --- a/alib2data/src/regexp/RegExpAlphabetGetter.h +++ b/alib2data/src/regexp/RegExpAlphabetGetter.h @@ -26,7 +26,7 @@ public: * @param regexp RegExp to print * @returns string representation of regexp */ - std::set<alphabet::Symbol> getAlphabet(const RegExp& regexp) const; + const std::set<alphabet::Symbol>& getAlphabet(const RegExp& regexp) const; static const RegExpAlphabetGetter REG_EXP_ALPHABET_GETTER; }; diff --git a/alib2data/src/string/StringAlphabetGetter.cpp b/alib2data/src/string/StringAlphabetGetter.cpp index 68a0b72cd2b97b419bdb1cf22562acfd36d57c2a..f85d76385e89a977d84896434576e89df3f9a720 100644 --- a/alib2data/src/string/StringAlphabetGetter.cpp +++ b/alib2data/src/string/StringAlphabetGetter.cpp @@ -10,24 +10,24 @@ namespace string { void StringAlphabetGetter::Visit(void* userData, const CyclicString& string) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = string.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = &string.getAlphabet(); } void StringAlphabetGetter::Visit(void* userData, const Epsilon& string) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = string.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = &string.getAlphabet(); } void StringAlphabetGetter::Visit(void* userData, const LinearString& string) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = string.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = &string.getAlphabet(); } -std::set<alphabet::Symbol> StringAlphabetGetter::getAlphabet(const String& string) const { - std::set<alphabet::Symbol> res; +const std::set<alphabet::Symbol>& StringAlphabetGetter::getAlphabet(const String& string) const { + const std::set<alphabet::Symbol>* res; string.getData().Accept((void*) &res, *this); - return std::move(res); + return *res; } const StringAlphabetGetter StringAlphabetGetter::STRING_ALPHABET_GETTER; diff --git a/alib2data/src/string/StringAlphabetGetter.h b/alib2data/src/string/StringAlphabetGetter.h index c3f84c738a4d4e89967d6e81e3f87bf13a903a2d..ec391dba5e7825998597abfecefb76325368de39 100644 --- a/alib2data/src/string/StringAlphabetGetter.h +++ b/alib2data/src/string/StringAlphabetGetter.h @@ -28,7 +28,7 @@ public: * @param string String to print * @returns string representation of string */ - std::set<alphabet::Symbol> getAlphabet(const String& string) const; + const std::set<alphabet::Symbol>& getAlphabet(const String& string) const; static const StringAlphabetGetter STRING_ALPHABET_GETTER; }; diff --git a/alib2data/src/string/common/StringAlphabet.h b/alib2data/src/string/common/StringAlphabet.h index 5838ed4608606773531ec5c0834aadd7e2e876fb..6bb3fffe39d37ffbdcb9150900acd3b493bc5618 100644 --- a/alib2data/src/string/common/StringAlphabet.h +++ b/alib2data/src/string/common/StringAlphabet.h @@ -26,8 +26,8 @@ public: * @param symbol Symbol to add */ bool addSymbolToAlphabet(const alphabet::Symbol& symbol); - - /** + + /** * Adds input symbols to input alphabet. * @param symbols Symbol to add */