From 8de2be73f583238f50a46694719a4bf350d730d9 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Fri, 10 Apr 2015 20:27:15 +0200 Subject: [PATCH] make operator std::string explicit --- aconvert2/src/GasTexConverter.cpp | 12 ++++++------ alib2algo/src/common/StringContainerConverter.hpp | 9 +++------ alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp | 5 ++++- .../src/regexp/convert/ToGrammarRightRGGlushkov.cpp | 5 ++++- alib2data/src/alphabet/BarSymbol.h | 2 +- alib2data/src/alphabet/BlankSymbol.h | 2 +- alib2data/src/alphabet/BottomOfTheStackSymbol.h | 2 +- alib2data/src/alphabet/EndSymbol.h | 2 +- alib2data/src/alphabet/LabeledSymbol.h | 2 +- alib2data/src/alphabet/RankedBarSymbol.h | 2 +- alib2data/src/alphabet/RankedSymbol.h | 2 +- alib2data/src/alphabet/StartSymbol.h | 2 +- alib2data/src/alphabet/SubtreeWildcardSymbol.h | 2 +- alib2data/src/alphabet/SymbolPairSymbol.h | 2 +- alib2data/src/alphabet/SymbolSetSymbol.h | 2 +- alib2data/src/alphabet/UniqueSymbol.h | 2 +- alib2data/src/automaton/FSM/CompactNFA.h | 2 +- alib2data/src/automaton/FSM/DFA.h | 10 +++++----- alib2data/src/automaton/FSM/EpsilonNFA.h | 2 +- alib2data/src/automaton/FSM/ExtendedNFA.h | 2 +- alib2data/src/automaton/FSM/MultiInitialStateNFA.h | 2 +- alib2data/src/automaton/FSM/NFA.h | 2 +- alib2data/src/automaton/PDA/DPDA.h | 2 +- alib2data/src/automaton/PDA/InputDrivenDPDA.h | 2 +- alib2data/src/automaton/PDA/InputDrivenNPDA.h | 2 +- alib2data/src/automaton/PDA/NPDA.h | 2 +- .../automaton/PDA/RealTimeHeightDeterministicDPDA.h | 2 +- .../automaton/PDA/RealTimeHeightDeterministicNPDA.h | 2 +- alib2data/src/automaton/PDA/SinglePopDPDA.h | 2 +- alib2data/src/automaton/PDA/SinglePopNPDA.h | 2 +- alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h | 2 +- alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h | 2 +- alib2data/src/automaton/TM/OneTapeDTM.h | 2 +- alib2data/src/automaton/common/State.h | 2 +- alib2data/src/common/base.hpp | 2 +- alib2data/src/common/wrapper.hpp | 2 +- alib2data/src/container/ObjectsMap.h | 2 +- alib2data/src/container/ObjectsPair.h | 2 +- alib2data/src/container/ObjectsSet.h | 2 +- alib2data/src/container/ObjectsVector.h | 2 +- alib2data/src/exception/AlibException.h | 2 +- alib2data/src/grammar/ContextFree/CFG.h | 2 +- alib2data/src/grammar/ContextFree/CNF.h | 2 +- alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h | 2 +- alib2data/src/grammar/ContextFree/GNF.h | 2 +- alib2data/src/grammar/ContextFree/LG.h | 2 +- alib2data/src/grammar/ContextSensitive/CSG.h | 2 +- .../grammar/ContextSensitive/NonContractingGrammar.h | 2 +- alib2data/src/grammar/Regular/LeftLG.h | 2 +- alib2data/src/grammar/Regular/LeftRG.h | 2 +- alib2data/src/grammar/Regular/RightLG.h | 2 +- alib2data/src/grammar/Regular/RightRG.h | 2 +- .../ContextPreservingUnrestrictedGrammar.h | 2 +- .../src/grammar/Unrestricted/UnrestrictedGrammar.h | 2 +- alib2data/src/graph/common/Node.h | 2 +- alib2data/src/graph/directed/DirectedEdge.h | 2 +- alib2data/src/graph/directed/DirectedGraph.h | 2 +- alib2data/src/graph/directed/IDirectedGraph.h | 2 +- alib2data/src/graph/undirected/IUndirectedGraph.h | 2 +- alib2data/src/graph/undirected/UndirectedEdge.h | 2 +- alib2data/src/graph/undirected/UndirectedGraph.h | 2 +- alib2data/src/label/HexavigesimalLabel.h | 2 +- alib2data/src/label/LabelPairLabel.h | 2 +- alib2data/src/label/LabelSetLabel.h | 2 +- alib2data/src/label/ObjectLabel.h | 2 +- alib2data/src/label/PrimitiveLabel.h | 2 +- alib2data/src/label/UniqueLabel.h | 2 +- alib2data/src/object/Void.h | 2 +- alib2data/src/primitive/Bool.h | 2 +- alib2data/src/primitive/Character.h | 2 +- alib2data/src/primitive/Integer.h | 2 +- alib2data/src/primitive/String.h | 2 +- alib2data/src/primitive/Unsigned.h | 2 +- alib2data/src/regexp/formal/FormalRegExp.h | 2 +- .../src/regexp/formal/FormalRegExpAlternation.h | 2 +- .../src/regexp/formal/FormalRegExpConcatenation.h | 2 +- alib2data/src/regexp/formal/FormalRegExpEmpty.h | 2 +- alib2data/src/regexp/formal/FormalRegExpEpsilon.h | 2 +- alib2data/src/regexp/formal/FormalRegExpIteration.h | 2 +- alib2data/src/regexp/formal/FormalRegExpSymbol.h | 2 +- alib2data/src/regexp/unbounded/UnboundedRegExp.h | 2 +- .../regexp/unbounded/UnboundedRegExpAlternation.h | 2 +- .../regexp/unbounded/UnboundedRegExpConcatenation.h | 2 +- .../src/regexp/unbounded/UnboundedRegExpEmpty.h | 2 +- .../src/regexp/unbounded/UnboundedRegExpEpsilon.h | 2 +- .../src/regexp/unbounded/UnboundedRegExpIteration.h | 2 +- .../src/regexp/unbounded/UnboundedRegExpSymbol.h | 2 +- alib2data/src/sax/Token.h | 2 +- alib2data/src/std/variant.hpp | 2 +- alib2data/src/string/CyclicString.h | 2 +- alib2data/src/string/Epsilon.h | 2 +- alib2data/src/string/LinearString.h | 2 +- 92 files changed, 109 insertions(+), 106 deletions(-) diff --git a/aconvert2/src/GasTexConverter.cpp b/aconvert2/src/GasTexConverter.cpp index e72eeec23c..d8635bcbe1 100644 --- a/aconvert2/src/GasTexConverter.cpp +++ b/aconvert2/src/GasTexConverter.cpp @@ -744,7 +744,7 @@ void GasTexConverter::transitions(const automaton::EpsilonNFA& fsm, std::ostream std::map<std::pair<std::string, std::string>, std::string> transitionMap; for (const auto& transition : fsm.getTransitions()) { for(const auto& to : transition.second) { - std::pair<std::string, std::string> key(transition.first.first.getName(), to.getName()); + std::pair<std::string, std::string> key((std::string) transition.first.first.getName(), (std::string) to.getName()); std::string symbol; if (transition.first.second.is<string::Epsilon>()) { @@ -768,7 +768,7 @@ void GasTexConverter::transitions(const automaton::MultiInitialStateNFA& fsm, st std::map<std::pair<std::string, std::string>, std::string> transitionMap; for (const auto& transition : fsm.getTransitions()) { for(const auto& to : transition.second) { - std::pair<std::string, std::string> key(transition.first.first.getName(), to.getName()); + std::pair<std::string, std::string> key((std::string) transition.first.first.getName(), (std::string) to.getName()); std::string symbol = (std::string) transition.first.second; @@ -787,7 +787,7 @@ void GasTexConverter::transitions(const automaton::NFA& fsm, std::ostream& out) std::map<std::pair<std::string, std::string>, std::string> transitionMap; for (const auto& transition : fsm.getTransitions()) { for(const auto& to : transition.second) { - std::pair<std::string, std::string> key(transition.first.first.getName(), to.getName()); + std::pair<std::string, std::string> key((std::string) transition.first.first.getName(), (std::string) to.getName()); std::string symbol = (std::string) transition.first.second; @@ -805,7 +805,7 @@ void GasTexConverter::transitions(const automaton::NFA& fsm, std::ostream& out) void GasTexConverter::transitions(const automaton::DFA& fsm, std::ostream& out) { std::map<std::pair<std::string, std::string>, std::string> transitionMap; for (const auto& transition : fsm.getTransitions()) { - std::pair<std::string, std::string> key(transition.first.first.getName(), transition.second.getName()); + std::pair<std::string, std::string> key((std::string) transition.first.first.getName(), (std::string) transition.second.getName()); std::string symbol = (std::string) transition.first.second; @@ -824,7 +824,7 @@ void GasTexConverter::transitions(const automaton::ExtendedNFA& fsm, std::ostrea for (const auto& transition : fsm.getTransitions()) { for(const auto& to : transition.second) { - std::pair<std::string, std::string> key(transition.first.first.getName(), to.getName()); + std::pair<std::string, std::string> key((std::string) transition.first.first.getName(), (std::string) to.getName()); std::string symbol = alib::StringDataFactory::toString(transition.first.second); @@ -844,7 +844,7 @@ void GasTexConverter::transitions(const automaton::CompactNFA& fsm, std::ostream for (const auto& transition : fsm.getTransitions()) { for(const auto& to : transition.second) { - std::pair<std::string, std::string> key(transition.first.first.getName(), to.getName()); + std::pair<std::string, std::string> key((std::string) transition.first.first.getName(), (std::string) to.getName()); std::string symbol = alib::StringDataFactory::toString(string::String(transition.first.second)); diff --git a/alib2algo/src/common/StringContainerConverter.hpp b/alib2algo/src/common/StringContainerConverter.hpp index 4e08635d39..e37a80ef87 100644 --- a/alib2algo/src/common/StringContainerConverter.hpp +++ b/alib2algo/src/common/StringContainerConverter.hpp @@ -67,8 +67,7 @@ inline void VisitHelper(void* data, const string::Epsilon& text) { template<class R, class S, class T> void StringContainerConverter<R, S, T>::Visit(void* data, const string::Epsilon& text) const { - T* & out = *((T**) data); - out = new T(text); + VisitHelper<R, S, T>(data, text); } @@ -88,8 +87,7 @@ inline void VisitHelper(void* data, const string::LinearString& text) { template<class R, class S, class T> void StringContainerConverter<R, S, T>::Visit(void* data, const string::LinearString& text) const { - T* & out = *((T**) data); - out = new T(text); + VisitHelper<R, S, T>(data, text); } @@ -109,8 +107,7 @@ inline void VisitHelper(void*, const string::CyclicString&) { template<class R, class S, class T> void StringContainerConverter<R, S, T>::Visit(void* data, const string::CyclicString& text) const { - T* & out = *((T**) data); - out = new T(text); //TODO tohle by melo vyhodit kompilacni chybu pro T = string::LinearString ale nehodi ... + VisitHelper<R, S, T>(data, text); } diff --git a/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp b/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp index 7c47c7a4c1..d74cc963c3 100644 --- a/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp +++ b/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp @@ -9,6 +9,9 @@ #include "label/Label.h" #include "label/LabelPairLabel.h" +#include "label/ObjectLabel.h" + +#include "object/Object.h" #include "../GlushkovTraversal.h" #include "../GlushkovPair.h" @@ -50,7 +53,7 @@ automaton::NFA ToAutomatonGlushkov::convert(const regexp::UnboundedRegExp& regex std::map<regexp::GlushkovSymbol, automaton::State> stateMap; for( auto const& symbol : regexp::GlushkovTraversal::getSymbols( regexp ) ) { - automaton::State q( label::Label( label::LabelPairLabel( std::make_pair( label::labelFrom( symbol.getInputSymbol( ) ), label::labelFrom( symbol.getId( ) ) ) ) ) ); + automaton::State q( label::Label( label::LabelPairLabel( std::make_pair( label::Label( label::ObjectLabel( alib::Object( symbol.getInputSymbol( ).getData() ) ) ), label::labelFrom( symbol.getId( ) ) ) ) ) ); stateMap.insert( std::make_pair( symbol, q ) ); automaton.addState( q ); diff --git a/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.cpp b/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.cpp index 7821ef3a9e..f2769c6633 100644 --- a/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.cpp +++ b/alib2algo/src/regexp/convert/ToGrammarRightRGGlushkov.cpp @@ -12,6 +12,9 @@ #include <alphabet/LabeledSymbol.h> #include <label/LabelPairLabel.h> +#include <label/ObjectLabel.h> + +#include <object/Object.h> #include "../GlushkovTraversal.h" #include "../GlushkovPair.h" @@ -54,7 +57,7 @@ grammar::RightRG ToGrammarRightRGGlushkov::convert(const regexp::UnboundedRegExp for(const auto& symbol : regexp::GlushkovTraversal::getSymbols(regexp)) { - alphabet::Symbol nt(alphabet::LabeledSymbol(label::Label(label::LabelPairLabel(std::make_pair(label::labelFrom(symbol.getInputSymbol()), label::labelFrom(symbol.getId())))))); + alphabet::Symbol nt(alphabet::LabeledSymbol(label::Label(label::LabelPairLabel(std::make_pair(label::Label( label::ObjectLabel( alib::Object( symbol.getInputSymbol( ).getData() ) ) ), label::labelFrom(symbol.getId())))))); symbolMap.insert(std::make_pair(symbol, nt)); grammar.addNonterminalSymbol(nt); } diff --git a/alib2data/src/alphabet/BarSymbol.h b/alib2data/src/alphabet/BarSymbol.h index 4e8daaaf62..9b928307da 100644 --- a/alib2data/src/alphabet/BarSymbol.h +++ b/alib2data/src/alphabet/BarSymbol.h @@ -34,7 +34,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<BarSymbol>(); diff --git a/alib2data/src/alphabet/BlankSymbol.h b/alib2data/src/alphabet/BlankSymbol.h index bf7f2d1312..818eee2cfb 100644 --- a/alib2data/src/alphabet/BlankSymbol.h +++ b/alib2data/src/alphabet/BlankSymbol.h @@ -34,7 +34,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<BlankSymbol>(); diff --git a/alib2data/src/alphabet/BottomOfTheStackSymbol.h b/alib2data/src/alphabet/BottomOfTheStackSymbol.h index 99abe4f709..61c93e15d8 100644 --- a/alib2data/src/alphabet/BottomOfTheStackSymbol.h +++ b/alib2data/src/alphabet/BottomOfTheStackSymbol.h @@ -34,7 +34,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<BottomOfTheStackSymbol>(); diff --git a/alib2data/src/alphabet/EndSymbol.h b/alib2data/src/alphabet/EndSymbol.h index 50a735a324..e2edbd994f 100644 --- a/alib2data/src/alphabet/EndSymbol.h +++ b/alib2data/src/alphabet/EndSymbol.h @@ -34,7 +34,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<EndSymbol>(); diff --git a/alib2data/src/alphabet/LabeledSymbol.h b/alib2data/src/alphabet/LabeledSymbol.h index 9e8192ed09..a7bd502ed9 100644 --- a/alib2data/src/alphabet/LabeledSymbol.h +++ b/alib2data/src/alphabet/LabeledSymbol.h @@ -49,7 +49,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<LabeledSymbol>(); diff --git a/alib2data/src/alphabet/RankedBarSymbol.h b/alib2data/src/alphabet/RankedBarSymbol.h index bbd6fa8acd..4c6479bb3d 100644 --- a/alib2data/src/alphabet/RankedBarSymbol.h +++ b/alib2data/src/alphabet/RankedBarSymbol.h @@ -42,7 +42,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<RankedBarSymbol>(); diff --git a/alib2data/src/alphabet/RankedSymbol.h b/alib2data/src/alphabet/RankedSymbol.h index 0b4d86a0ab..aab04969a5 100644 --- a/alib2data/src/alphabet/RankedSymbol.h +++ b/alib2data/src/alphabet/RankedSymbol.h @@ -57,7 +57,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<RankedSymbol>(); diff --git a/alib2data/src/alphabet/StartSymbol.h b/alib2data/src/alphabet/StartSymbol.h index 4cab940a1a..b22b5bd13e 100644 --- a/alib2data/src/alphabet/StartSymbol.h +++ b/alib2data/src/alphabet/StartSymbol.h @@ -34,7 +34,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<StartSymbol>(); diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.h b/alib2data/src/alphabet/SubtreeWildcardSymbol.h index 6c1480a898..a8facf57ee 100644 --- a/alib2data/src/alphabet/SubtreeWildcardSymbol.h +++ b/alib2data/src/alphabet/SubtreeWildcardSymbol.h @@ -34,7 +34,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<SubtreeWildcardSymbol>(); diff --git a/alib2data/src/alphabet/SymbolPairSymbol.h b/alib2data/src/alphabet/SymbolPairSymbol.h index 80f435d04f..eea27dc43b 100644 --- a/alib2data/src/alphabet/SymbolPairSymbol.h +++ b/alib2data/src/alphabet/SymbolPairSymbol.h @@ -50,7 +50,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<SymbolPairSymbol>(); diff --git a/alib2data/src/alphabet/SymbolSetSymbol.h b/alib2data/src/alphabet/SymbolSetSymbol.h index a07cebf680..99596f2254 100644 --- a/alib2data/src/alphabet/SymbolSetSymbol.h +++ b/alib2data/src/alphabet/SymbolSetSymbol.h @@ -50,7 +50,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<SymbolSetSymbol>(); diff --git a/alib2data/src/alphabet/UniqueSymbol.h b/alib2data/src/alphabet/UniqueSymbol.h index 7c8e95a85e..e8d75a7887 100644 --- a/alib2data/src/alphabet/UniqueSymbol.h +++ b/alib2data/src/alphabet/UniqueSymbol.h @@ -52,7 +52,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<UniqueSymbol>(); diff --git a/alib2data/src/automaton/FSM/CompactNFA.h b/alib2data/src/automaton/FSM/CompactNFA.h index 26c8e8be07..0650bf0423 100644 --- a/alib2data/src/automaton/FSM/CompactNFA.h +++ b/alib2data/src/automaton/FSM/CompactNFA.h @@ -87,7 +87,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<CompactNFA>(); diff --git a/alib2data/src/automaton/FSM/DFA.h b/alib2data/src/automaton/FSM/DFA.h index b0552f6d68..3264fd3c7b 100644 --- a/alib2data/src/automaton/FSM/DFA.h +++ b/alib2data/src/automaton/FSM/DFA.h @@ -27,7 +27,7 @@ public: explicit DFA(const State& initialState); virtual AutomatonBase* clone() const; - + virtual AutomatonBase* plunder() &&; /** @@ -39,7 +39,7 @@ public: * @copydoc Automaton::removeInputSymbol(const Symbol&) */ virtual bool removeInputSymbol(const alphabet::Symbol& symbol); - + /** * Adds transition defined by parameters to the automaton. * @param current current state @@ -65,7 +65,7 @@ public: * @return automaton transitions from state */ std::map<std::pair<State, alphabet::Symbol>, State> getTransitionsFromState(const State& from) const; - + /** * @return automaton transitions to state */ @@ -85,10 +85,10 @@ public: } virtual int compare(const DFA& other) const; - + virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<DFA>(); diff --git a/alib2data/src/automaton/FSM/EpsilonNFA.h b/alib2data/src/automaton/FSM/EpsilonNFA.h index 28fad8d46e..807727492d 100644 --- a/alib2data/src/automaton/FSM/EpsilonNFA.h +++ b/alib2data/src/automaton/FSM/EpsilonNFA.h @@ -166,7 +166,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<EpsilonNFA>(); diff --git a/alib2data/src/automaton/FSM/ExtendedNFA.h b/alib2data/src/automaton/FSM/ExtendedNFA.h index 16fd38b603..4bd0833573 100644 --- a/alib2data/src/automaton/FSM/ExtendedNFA.h +++ b/alib2data/src/automaton/FSM/ExtendedNFA.h @@ -89,7 +89,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<ExtendedNFA>(); diff --git a/alib2data/src/automaton/FSM/MultiInitialStateNFA.h b/alib2data/src/automaton/FSM/MultiInitialStateNFA.h index 48bda23aa7..1bb49a341e 100644 --- a/alib2data/src/automaton/FSM/MultiInitialStateNFA.h +++ b/alib2data/src/automaton/FSM/MultiInitialStateNFA.h @@ -105,7 +105,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<MultiInitialStateNFA>(); diff --git a/alib2data/src/automaton/FSM/NFA.h b/alib2data/src/automaton/FSM/NFA.h index 3d4bad88ec..50c88650e1 100644 --- a/alib2data/src/automaton/FSM/NFA.h +++ b/alib2data/src/automaton/FSM/NFA.h @@ -103,7 +103,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<NFA>(); diff --git a/alib2data/src/automaton/PDA/DPDA.h b/alib2data/src/automaton/PDA/DPDA.h index d7332569ca..534252094a 100644 --- a/alib2data/src/automaton/PDA/DPDA.h +++ b/alib2data/src/automaton/PDA/DPDA.h @@ -99,7 +99,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<DPDA>(); diff --git a/alib2data/src/automaton/PDA/InputDrivenDPDA.h b/alib2data/src/automaton/PDA/InputDrivenDPDA.h index 4d92e00439..085931f95e 100644 --- a/alib2data/src/automaton/PDA/InputDrivenDPDA.h +++ b/alib2data/src/automaton/PDA/InputDrivenDPDA.h @@ -98,7 +98,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<InputDrivenDPDA>(); diff --git a/alib2data/src/automaton/PDA/InputDrivenNPDA.h b/alib2data/src/automaton/PDA/InputDrivenNPDA.h index 75159d0a7c..2ba69787a7 100644 --- a/alib2data/src/automaton/PDA/InputDrivenNPDA.h +++ b/alib2data/src/automaton/PDA/InputDrivenNPDA.h @@ -97,7 +97,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<InputDrivenNPDA>(); diff --git a/alib2data/src/automaton/PDA/NPDA.h b/alib2data/src/automaton/PDA/NPDA.h index 0725489c60..da6e75e17f 100644 --- a/alib2data/src/automaton/PDA/NPDA.h +++ b/alib2data/src/automaton/PDA/NPDA.h @@ -85,7 +85,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<NPDA>(); diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h index 64e9ea3ccd..37156ecf5d 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h @@ -126,7 +126,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<RealTimeHeightDeterministicDPDA>(); diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h index 21e85c58d4..4f81eba7af 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h @@ -126,7 +126,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<RealTimeHeightDeterministicNPDA>(); diff --git a/alib2data/src/automaton/PDA/SinglePopDPDA.h b/alib2data/src/automaton/PDA/SinglePopDPDA.h index 3ac5eca2d4..f79eb5fdfd 100644 --- a/alib2data/src/automaton/PDA/SinglePopDPDA.h +++ b/alib2data/src/automaton/PDA/SinglePopDPDA.h @@ -89,7 +89,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<SinglePopDPDA>(); diff --git a/alib2data/src/automaton/PDA/SinglePopNPDA.h b/alib2data/src/automaton/PDA/SinglePopNPDA.h index 9830da0869..4c5b5d3864 100644 --- a/alib2data/src/automaton/PDA/SinglePopNPDA.h +++ b/alib2data/src/automaton/PDA/SinglePopNPDA.h @@ -85,7 +85,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<SinglePopNPDA>(); diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h index 0aa8958edb..cda77c82af 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h +++ b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h @@ -112,7 +112,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<VisiblyPushdownDPDA>(); diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h index 3f22b8c4d2..d6faa402c3 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h +++ b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h @@ -112,7 +112,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<VisiblyPushdownNPDA>(); diff --git a/alib2data/src/automaton/TM/OneTapeDTM.h b/alib2data/src/automaton/TM/OneTapeDTM.h index 0418689019..9ee3d33169 100644 --- a/alib2data/src/automaton/TM/OneTapeDTM.h +++ b/alib2data/src/automaton/TM/OneTapeDTM.h @@ -81,7 +81,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<OneTapeDTM>(); diff --git a/alib2data/src/automaton/common/State.h b/alib2data/src/automaton/common/State.h index 2835b3a556..c2fc2c8c95 100644 --- a/alib2data/src/automaton/common/State.h +++ b/alib2data/src/automaton/common/State.h @@ -39,7 +39,7 @@ public: friend std::ostream& operator<<(std::ostream&, const State&); - operator std::string () const; + explicit operator std::string () const; }; } /* namespace automaton */ diff --git a/alib2data/src/common/base.hpp b/alib2data/src/common/base.hpp index e6e86ab01d..8fa2fcc330 100644 --- a/alib2data/src/common/base.hpp +++ b/alib2data/src/common/base.hpp @@ -109,7 +109,7 @@ public: virtual void operator>>(std::ostream&) const = 0; - virtual operator std::string () const = 0; + virtual explicit operator std::string () const = 0; }; } /* namespace alib */ diff --git a/alib2data/src/common/wrapper.hpp b/alib2data/src/common/wrapper.hpp index fb053875c0..c0093ba42f 100644 --- a/alib2data/src/common/wrapper.hpp +++ b/alib2data/src/common/wrapper.hpp @@ -99,7 +99,7 @@ public: return os; } - operator std::string () const { + explicit operator std::string () const { return (std::string) *data; } }; diff --git a/alib2data/src/container/ObjectsMap.h b/alib2data/src/container/ObjectsMap.h index de194f0937..c4d7aa4ca2 100644 --- a/alib2data/src/container/ObjectsMap.h +++ b/alib2data/src/container/ObjectsMap.h @@ -34,7 +34,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<ObjectsMap>(); diff --git a/alib2data/src/container/ObjectsPair.h b/alib2data/src/container/ObjectsPair.h index 28bd4a1289..e6a0dbb77c 100644 --- a/alib2data/src/container/ObjectsPair.h +++ b/alib2data/src/container/ObjectsPair.h @@ -36,7 +36,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<ObjectsPair>(); diff --git a/alib2data/src/container/ObjectsSet.h b/alib2data/src/container/ObjectsSet.h index 4ee7de42c8..16747c020c 100644 --- a/alib2data/src/container/ObjectsSet.h +++ b/alib2data/src/container/ObjectsSet.h @@ -34,7 +34,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<ObjectsSet>(); diff --git a/alib2data/src/container/ObjectsVector.h b/alib2data/src/container/ObjectsVector.h index ca64be8673..1c88f62645 100644 --- a/alib2data/src/container/ObjectsVector.h +++ b/alib2data/src/container/ObjectsVector.h @@ -34,7 +34,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<ObjectsVector>(); diff --git a/alib2data/src/exception/AlibException.h b/alib2data/src/exception/AlibException.h index 7feee65081..7b3007ac43 100644 --- a/alib2data/src/exception/AlibException.h +++ b/alib2data/src/exception/AlibException.h @@ -61,7 +61,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<AlibException>(); diff --git a/alib2data/src/grammar/ContextFree/CFG.h b/alib2data/src/grammar/ContextFree/CFG.h index f995b96a6a..a9611d56f5 100644 --- a/alib2data/src/grammar/ContextFree/CFG.h +++ b/alib2data/src/grammar/ContextFree/CFG.h @@ -55,7 +55,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<CFG>(); diff --git a/alib2data/src/grammar/ContextFree/CNF.h b/alib2data/src/grammar/ContextFree/CNF.h index 5e1ddfa933..2f807a6659 100644 --- a/alib2data/src/grammar/ContextFree/CNF.h +++ b/alib2data/src/grammar/ContextFree/CNF.h @@ -64,7 +64,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<CNF>(); diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h index a5382fadb1..6166994faa 100644 --- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h +++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h @@ -59,7 +59,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<EpsilonFreeCFG>(); diff --git a/alib2data/src/grammar/ContextFree/GNF.h b/alib2data/src/grammar/ContextFree/GNF.h index 08b12ff8a6..6806ea3c98 100644 --- a/alib2data/src/grammar/ContextFree/GNF.h +++ b/alib2data/src/grammar/ContextFree/GNF.h @@ -59,7 +59,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<GNF>(); diff --git a/alib2data/src/grammar/ContextFree/LG.h b/alib2data/src/grammar/ContextFree/LG.h index 322bac4bec..0f5fd6fd39 100644 --- a/alib2data/src/grammar/ContextFree/LG.h +++ b/alib2data/src/grammar/ContextFree/LG.h @@ -60,7 +60,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<LG>(); diff --git a/alib2data/src/grammar/ContextSensitive/CSG.h b/alib2data/src/grammar/ContextSensitive/CSG.h index e4baa92f68..52b5b20735 100644 --- a/alib2data/src/grammar/ContextSensitive/CSG.h +++ b/alib2data/src/grammar/ContextSensitive/CSG.h @@ -52,7 +52,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<CSG>(); diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h index 37e32edd57..66f957e5f4 100644 --- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h +++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h @@ -52,7 +52,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<NonContractingGrammar>(); diff --git a/alib2data/src/grammar/Regular/LeftLG.h b/alib2data/src/grammar/Regular/LeftLG.h index 1c662378e8..6998aca04c 100644 --- a/alib2data/src/grammar/Regular/LeftLG.h +++ b/alib2data/src/grammar/Regular/LeftLG.h @@ -59,7 +59,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<LeftLG>(); diff --git a/alib2data/src/grammar/Regular/LeftRG.h b/alib2data/src/grammar/Regular/LeftRG.h index de7ddb40c6..12d46b2b2c 100644 --- a/alib2data/src/grammar/Regular/LeftRG.h +++ b/alib2data/src/grammar/Regular/LeftRG.h @@ -143,7 +143,7 @@ public: /** * casts this instance to as compact as possible string representation */ - virtual operator std::string () const; + virtual explicit operator std::string () const; /** * @copydoc alib::base_base::selfTypeId diff --git a/alib2data/src/grammar/Regular/RightLG.h b/alib2data/src/grammar/Regular/RightLG.h index cef83c1fb4..35ca0cdca0 100644 --- a/alib2data/src/grammar/Regular/RightLG.h +++ b/alib2data/src/grammar/Regular/RightLG.h @@ -59,7 +59,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<RightLG>(); diff --git a/alib2data/src/grammar/Regular/RightRG.h b/alib2data/src/grammar/Regular/RightRG.h index d28cc62c79..de21f7c2d7 100644 --- a/alib2data/src/grammar/Regular/RightRG.h +++ b/alib2data/src/grammar/Regular/RightRG.h @@ -79,7 +79,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<RightRG>(); diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h index 4de7f9fd18..2668aa83de 100644 --- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h +++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h @@ -48,7 +48,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<ContextPreservingUnrestrictedGrammar>(); diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h index bb77683355..55761fd07e 100644 --- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h +++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h @@ -48,7 +48,7 @@ public: virtual void operator>>(std::ostream& os) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<UnrestrictedGrammar>(); diff --git a/alib2data/src/graph/common/Node.h b/alib2data/src/graph/common/Node.h index 93fe69b1d8..3016a938fa 100644 --- a/alib2data/src/graph/common/Node.h +++ b/alib2data/src/graph/common/Node.h @@ -36,7 +36,7 @@ public: void operator>>(std::ostream &out) const override; - operator std::string() const override; + explicit operator std::string() const override; int selfTypeId() const override { diff --git a/alib2data/src/graph/directed/DirectedEdge.h b/alib2data/src/graph/directed/DirectedEdge.h index 65d773d72b..75b1a34602 100644 --- a/alib2data/src/graph/directed/DirectedEdge.h +++ b/alib2data/src/graph/directed/DirectedEdge.h @@ -43,7 +43,7 @@ public: void operator>>(std::ostream &out) const override; - operator std::string() const override; + explicit operator std::string() const override; int selfTypeId() const override { diff --git a/alib2data/src/graph/directed/DirectedGraph.h b/alib2data/src/graph/directed/DirectedGraph.h index 5aa24d5703..dc6ff344e6 100644 --- a/alib2data/src/graph/directed/DirectedGraph.h +++ b/alib2data/src/graph/directed/DirectedGraph.h @@ -64,7 +64,7 @@ public: void operator>>(std::ostream &out) const override; - operator std::string() const override; + explicit operator std::string() const override; int selfTypeId() const override { diff --git a/alib2data/src/graph/directed/IDirectedGraph.h b/alib2data/src/graph/directed/IDirectedGraph.h index 163c376b0b..6e8145b2b5 100644 --- a/alib2data/src/graph/directed/IDirectedGraph.h +++ b/alib2data/src/graph/directed/IDirectedGraph.h @@ -34,7 +34,7 @@ public: virtual void copy(IDirectedGraph *other) = 0; virtual int compare(IDirectedGraph *other) const = 0; - operator std::string() const; + explicit operator std::string() const; }; } // namespace graph diff --git a/alib2data/src/graph/undirected/IUndirectedGraph.h b/alib2data/src/graph/undirected/IUndirectedGraph.h index 3e0ad5aacc..c3d70d87a4 100644 --- a/alib2data/src/graph/undirected/IUndirectedGraph.h +++ b/alib2data/src/graph/undirected/IUndirectedGraph.h @@ -34,7 +34,7 @@ public: virtual void copy(IUndirectedGraph *other) = 0; virtual int compare(IUndirectedGraph *other) const = 0; - operator std::string() const; + explicit operator std::string() const; }; } // namespace graph diff --git a/alib2data/src/graph/undirected/UndirectedEdge.h b/alib2data/src/graph/undirected/UndirectedEdge.h index 379300e591..b8c1b846ab 100644 --- a/alib2data/src/graph/undirected/UndirectedEdge.h +++ b/alib2data/src/graph/undirected/UndirectedEdge.h @@ -43,7 +43,7 @@ public: void operator>>(std::ostream &out) const override; - operator std::string() const override; + explicit operator std::string() const override; int selfTypeId() const override { diff --git a/alib2data/src/graph/undirected/UndirectedGraph.h b/alib2data/src/graph/undirected/UndirectedGraph.h index 0fc7dad5f0..b99bdb086b 100644 --- a/alib2data/src/graph/undirected/UndirectedGraph.h +++ b/alib2data/src/graph/undirected/UndirectedGraph.h @@ -64,7 +64,7 @@ public: void operator>>(std::ostream &out) const override; - operator std::string() const override; + explicit operator std::string() const override; int selfTypeId() const override { diff --git a/alib2data/src/label/HexavigesimalLabel.h b/alib2data/src/label/HexavigesimalLabel.h index 465524b3c1..4f805ba062 100644 --- a/alib2data/src/label/HexavigesimalLabel.h +++ b/alib2data/src/label/HexavigesimalLabel.h @@ -46,7 +46,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<HexavigesimalLabel>(); diff --git a/alib2data/src/label/LabelPairLabel.h b/alib2data/src/label/LabelPairLabel.h index 0c01b4228e..bc72f91946 100644 --- a/alib2data/src/label/LabelPairLabel.h +++ b/alib2data/src/label/LabelPairLabel.h @@ -50,7 +50,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<LabelPairLabel>(); diff --git a/alib2data/src/label/LabelSetLabel.h b/alib2data/src/label/LabelSetLabel.h index f9e393ef6b..2741e2dd80 100644 --- a/alib2data/src/label/LabelSetLabel.h +++ b/alib2data/src/label/LabelSetLabel.h @@ -50,7 +50,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<LabelSetLabel>(); diff --git a/alib2data/src/label/ObjectLabel.h b/alib2data/src/label/ObjectLabel.h index b435aeda59..37d27086f0 100644 --- a/alib2data/src/label/ObjectLabel.h +++ b/alib2data/src/label/ObjectLabel.h @@ -48,7 +48,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<ObjectLabel>(); diff --git a/alib2data/src/label/PrimitiveLabel.h b/alib2data/src/label/PrimitiveLabel.h index b783b06698..f8f572a269 100644 --- a/alib2data/src/label/PrimitiveLabel.h +++ b/alib2data/src/label/PrimitiveLabel.h @@ -48,7 +48,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<PrimitiveLabel>(); diff --git a/alib2data/src/label/UniqueLabel.h b/alib2data/src/label/UniqueLabel.h index 872f49a94f..3b89b2c080 100644 --- a/alib2data/src/label/UniqueLabel.h +++ b/alib2data/src/label/UniqueLabel.h @@ -52,7 +52,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<UniqueLabel>(); diff --git a/alib2data/src/object/Void.h b/alib2data/src/object/Void.h index 6c2eedcb35..bd1fa9f57a 100644 --- a/alib2data/src/object/Void.h +++ b/alib2data/src/object/Void.h @@ -36,7 +36,7 @@ public: virtual void operator>>(std::ostream& out) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<Void>(); diff --git a/alib2data/src/primitive/Bool.h b/alib2data/src/primitive/Bool.h index c3dee8ace3..9561862a09 100644 --- a/alib2data/src/primitive/Bool.h +++ b/alib2data/src/primitive/Bool.h @@ -45,7 +45,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<Bool>(); diff --git a/alib2data/src/primitive/Character.h b/alib2data/src/primitive/Character.h index 842a21a4f5..13aba2a13d 100644 --- a/alib2data/src/primitive/Character.h +++ b/alib2data/src/primitive/Character.h @@ -46,7 +46,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<Character>(); diff --git a/alib2data/src/primitive/Integer.h b/alib2data/src/primitive/Integer.h index 88ee421be0..47c01dfdf1 100644 --- a/alib2data/src/primitive/Integer.h +++ b/alib2data/src/primitive/Integer.h @@ -45,7 +45,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<Integer>(); diff --git a/alib2data/src/primitive/String.h b/alib2data/src/primitive/String.h index 0ceb083f34..48358e88f7 100644 --- a/alib2data/src/primitive/String.h +++ b/alib2data/src/primitive/String.h @@ -50,7 +50,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string () const; + virtual explicit operator std::string () const; virtual int selfTypeId() const { return typeId<String>(); diff --git a/alib2data/src/primitive/Unsigned.h b/alib2data/src/primitive/Unsigned.h index a6a11d6ad0..faa651f14f 100644 --- a/alib2data/src/primitive/Unsigned.h +++ b/alib2data/src/primitive/Unsigned.h @@ -45,7 +45,7 @@ public: virtual void operator>>(std::ostream&) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<Unsigned>(); diff --git a/alib2data/src/regexp/formal/FormalRegExp.h b/alib2data/src/regexp/formal/FormalRegExp.h index f8d705d9f6..3f986b0ffc 100644 --- a/alib2data/src/regexp/formal/FormalRegExp.h +++ b/alib2data/src/regexp/formal/FormalRegExp.h @@ -99,7 +99,7 @@ public: virtual int compare(const FormalRegExp& other) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<FormalRegExp>(); diff --git a/alib2data/src/regexp/formal/FormalRegExpAlternation.h b/alib2data/src/regexp/formal/FormalRegExpAlternation.h index b31853b98f..d2a90b6ecb 100644 --- a/alib2data/src/regexp/formal/FormalRegExpAlternation.h +++ b/alib2data/src/regexp/formal/FormalRegExpAlternation.h @@ -105,7 +105,7 @@ public: friend class simplify::RegExpOptimize; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<FormalRegExpAlternation>(); diff --git a/alib2data/src/regexp/formal/FormalRegExpConcatenation.h b/alib2data/src/regexp/formal/FormalRegExpConcatenation.h index 0b53a274e7..c64d9c9d88 100644 --- a/alib2data/src/regexp/formal/FormalRegExpConcatenation.h +++ b/alib2data/src/regexp/formal/FormalRegExpConcatenation.h @@ -103,7 +103,7 @@ public: friend class simplify::RegExpOptimize; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<FormalRegExpConcatenation>(); diff --git a/alib2data/src/regexp/formal/FormalRegExpEmpty.h b/alib2data/src/regexp/formal/FormalRegExpEmpty.h index f4825479d5..62d91438d7 100644 --- a/alib2data/src/regexp/formal/FormalRegExpEmpty.h +++ b/alib2data/src/regexp/formal/FormalRegExpEmpty.h @@ -66,7 +66,7 @@ public: */ virtual void operator>>(std::ostream& out) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<FormalRegExpEmpty>(); diff --git a/alib2data/src/regexp/formal/FormalRegExpEpsilon.h b/alib2data/src/regexp/formal/FormalRegExpEpsilon.h index 72c32e5afb..bc91013adc 100644 --- a/alib2data/src/regexp/formal/FormalRegExpEpsilon.h +++ b/alib2data/src/regexp/formal/FormalRegExpEpsilon.h @@ -67,7 +67,7 @@ public: */ virtual void operator>>(std::ostream& out) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<FormalRegExpEpsilon>(); diff --git a/alib2data/src/regexp/formal/FormalRegExpIteration.h b/alib2data/src/regexp/formal/FormalRegExpIteration.h index ccd265a4b8..6a1e1d42f6 100644 --- a/alib2data/src/regexp/formal/FormalRegExpIteration.h +++ b/alib2data/src/regexp/formal/FormalRegExpIteration.h @@ -98,7 +98,7 @@ public: friend class simplify::RegExpOptimize; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<FormalRegExpIteration>(); diff --git a/alib2data/src/regexp/formal/FormalRegExpSymbol.h b/alib2data/src/regexp/formal/FormalRegExpSymbol.h index f504607179..3a7cd16d79 100644 --- a/alib2data/src/regexp/formal/FormalRegExpSymbol.h +++ b/alib2data/src/regexp/formal/FormalRegExpSymbol.h @@ -83,7 +83,7 @@ public: */ const alphabet::Symbol& getSymbol() const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<FormalRegExpSymbol>(); diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExp.h b/alib2data/src/regexp/unbounded/UnboundedRegExp.h index 82f551be2f..3d2e654d31 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExp.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExp.h @@ -99,7 +99,7 @@ public: virtual int compare(const UnboundedRegExp& other) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<UnboundedRegExp>(); diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpAlternation.h b/alib2data/src/regexp/unbounded/UnboundedRegExpAlternation.h index f2c2faf69b..c250ab5247 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExpAlternation.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExpAlternation.h @@ -99,7 +99,7 @@ public: friend class simplify::RegExpOptimize; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<UnboundedRegExpAlternation>(); diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpConcatenation.h b/alib2data/src/regexp/unbounded/UnboundedRegExpConcatenation.h index bee29e7164..b3b7031ad2 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExpConcatenation.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExpConcatenation.h @@ -98,7 +98,7 @@ public: friend class simplify::RegExpOptimize; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<UnboundedRegExpConcatenation>(); diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpEmpty.h b/alib2data/src/regexp/unbounded/UnboundedRegExpEmpty.h index d978c92b90..eee6cccbe1 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExpEmpty.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExpEmpty.h @@ -65,7 +65,7 @@ public: */ virtual void operator>>(std::ostream& out) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<UnboundedRegExpEmpty>(); diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpEpsilon.h b/alib2data/src/regexp/unbounded/UnboundedRegExpEpsilon.h index ef72a8d2b3..fe478f502e 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExpEpsilon.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExpEpsilon.h @@ -66,7 +66,7 @@ public: */ virtual void operator>>(std::ostream& out) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<UnboundedRegExpEpsilon>(); diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpIteration.h b/alib2data/src/regexp/unbounded/UnboundedRegExpIteration.h index 1c37dd4754..3fd2cff712 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExpIteration.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExpIteration.h @@ -97,7 +97,7 @@ public: friend class simplify::RegExpOptimize; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<UnboundedRegExpIteration>(); diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpSymbol.h b/alib2data/src/regexp/unbounded/UnboundedRegExpSymbol.h index b567b01d04..e5bb25efde 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExpSymbol.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExpSymbol.h @@ -82,7 +82,7 @@ public: */ const alphabet::Symbol& getSymbol() const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<UnboundedRegExpSymbol>(); diff --git a/alib2data/src/sax/Token.h b/alib2data/src/sax/Token.h index 836b652806..dba8b50f7e 100644 --- a/alib2data/src/sax/Token.h +++ b/alib2data/src/sax/Token.h @@ -47,7 +47,7 @@ public: friend std::ostream& operator<<(std::ostream& os, const Token& token); - operator std::string () const; + explicit operator std::string () const; }; } /* namespace sax */ diff --git a/alib2data/src/std/variant.hpp b/alib2data/src/std/variant.hpp index 7a6dc3bc10..7ffc722063 100644 --- a/alib2data/src/std/variant.hpp +++ b/alib2data/src/std/variant.hpp @@ -248,7 +248,7 @@ public: return out; } - operator std::string() const { + explicit operator std::string() const { return helper_t::string(this->type_id, &this->data); } }; diff --git a/alib2data/src/string/CyclicString.h b/alib2data/src/string/CyclicString.h index b45a41ba9a..c97a433e25 100644 --- a/alib2data/src/string/CyclicString.h +++ b/alib2data/src/string/CyclicString.h @@ -63,7 +63,7 @@ public: virtual void operator >>(std::ostream& out) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<CyclicString>(); diff --git a/alib2data/src/string/Epsilon.h b/alib2data/src/string/Epsilon.h index e25f4806b6..30621a85c0 100644 --- a/alib2data/src/string/Epsilon.h +++ b/alib2data/src/string/Epsilon.h @@ -50,7 +50,7 @@ public: virtual void operator >>(std::ostream& out) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; static Epsilon EPSILON; diff --git a/alib2data/src/string/LinearString.h b/alib2data/src/string/LinearString.h index 05da8ee3d5..13675e8887 100644 --- a/alib2data/src/string/LinearString.h +++ b/alib2data/src/string/LinearString.h @@ -71,7 +71,7 @@ public: virtual void operator >>(std::ostream& out) const; - virtual operator std::string() const; + virtual explicit operator std::string() const; virtual int selfTypeId() const { return typeId<LinearString>(); -- GitLab