diff --git a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx index da08b34a96110d760db904d70e2a5fa50a5e7fd7..761605ad6f4f290ab27b2d73e8f5df18e3e88545 100644 --- a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx +++ b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx @@ -63,7 +63,7 @@ automaton::InputDrivenDPDA < > Determinize::determinize ( const automaton::Input for ( const DefaultStateType & dfaState : res.getStates ( ) ) { const std::set < DefaultStateType > & nfaStates = recreateNFAStates ( dfaState ); - if(!std::excludes(finalLabels.begin(), finalLabels.end(), nfaStates.begin(), nfaStates.end())) + if(!ext::excludes(finalLabels.begin(), finalLabels.end(), nfaStates.begin(), nfaStates.end())) res.addFinalState ( dfaState ); } diff --git a/alib2algo/src/automaton/determinize/DeterminizeNFAPart.hxx b/alib2algo/src/automaton/determinize/DeterminizeNFAPart.hxx index 3947a860d59640b3d9f8a0383c11f93d67ceb669..9111d7a8cba8012d24fce79b26f7b33f43bddf2e 100644 --- a/alib2algo/src/automaton/determinize/DeterminizeNFAPart.hxx +++ b/alib2algo/src/automaton/determinize/DeterminizeNFAPart.hxx @@ -59,7 +59,7 @@ automaton::DFA < SymbolType, std::set < StateType > > Determinize::determinize ( // 5 const std::set < StateType > & finalLabels = nfa.getFinalStates(); for ( const std::set < StateType > & dfaState : res.getStates ( ) ) - if ( ! std::excludes ( finalLabels.begin ( ), finalLabels.end ( ), dfaState.begin ( ), dfaState.end ( ) ) ) + if ( ! ext::excludes ( finalLabels.begin ( ), finalLabels.end ( ), dfaState.begin ( ), dfaState.end ( ) ) ) res.addFinalState ( dfaState ); return res; @@ -107,7 +107,7 @@ automaton::DFA < SymbolType, std::set < StateType > > Determinize::determinize ( // 5 const std::set < StateType > & finalLabels = nfa.getFinalStates(); for ( const std::set < StateType > & dfaState : res.getStates ( ) ) - if ( ! std::excludes ( finalLabels.begin ( ), finalLabels.end ( ), dfaState.begin ( ), dfaState.end ( ) ) ) + if ( ! ext::excludes ( finalLabels.begin ( ), finalLabels.end ( ), dfaState.begin ( ), dfaState.end ( ) ) ) res.addFinalState ( dfaState ); return res; diff --git a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx index 7c2a496509ae853f1a5887294cea1696838a5651..3befb73c9943ffc099ce6dbf074fd88cb33a5b06 100644 --- a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx +++ b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx @@ -262,7 +262,7 @@ automaton::RealTimeHeightDeterministicDPDA < > Determinize::determinize(const au for(const DefaultStateType& state : d.getStates()) { const std::set<DefaultStateType> labels = retrieveDSubSet(unpackFromStateLabel(state)); - if(!std::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) { + if(!ext::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) { d.addFinalState(state); } } diff --git a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx index 39ea6c3c636d4a51e78d30765c13b7816893db06..98ef78cd9e3a1eff3437f22ad106c6e59475f513 100644 --- a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx +++ b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx @@ -197,7 +197,7 @@ automaton::VisiblyPushdownDPDA < > Determinize::determinize(const automaton::Vis for(const DefaultStateType& state : d.getStates()) { const std::set<DefaultStateType> labels = retrieveDSubSet(unpackFromStateLabel(state)); - if(!std::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) { + if(!ext::excludes(finalLabels.begin(), finalLabels.end(), labels.begin(), labels.end())) { d.addFinalState(state); } } diff --git a/alib2algo/src/grammar/generate/RandomizeGrammar.h b/alib2algo/src/grammar/generate/RandomizeGrammar.h index fc81ebced36a16d19e983c11dfeace34ffc70444..2260101e70f19422d840f3951aac7192c49ee220 100644 --- a/alib2algo/src/grammar/generate/RandomizeGrammar.h +++ b/alib2algo/src/grammar/generate/RandomizeGrammar.h @@ -127,7 +127,7 @@ grammar::CFG < SymbolType > RandomizeGrammar::randomize ( const grammar::CFG < S for ( const std::pair < SymbolType, std::set < std::vector < SymbolType > > > & rule : gram.getRules ( ) ) for ( const std::vector < SymbolType > & rhs : rule.second ) - res.addRule ( symbolPermutationMap.find ( rule.first )->second, std::transform < SymbolType > ( rhs, [ & ] ( const SymbolType & elem ) { + res.addRule ( symbolPermutationMap.find ( rule.first )->second, ext::transform < SymbolType > ( rhs, [ & ] ( const SymbolType & elem ) { if ( gram.getNonterminalAlphabet ( ).count ( elem ) ) return symbolPermutationMap.find ( elem )->second; else diff --git a/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkov.cpp b/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkov.cpp index 977a982d1c3263cc478d1d664bf8bad81e0623e7..86906d5486827e31ea7fcb3c3c151e319c148f7d 100644 --- a/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkov.cpp +++ b/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkov.cpp @@ -28,7 +28,7 @@ automaton::NPDA < > ToPostfixPushdownAutomatonGlushkov::convert ( const rte::RTE } std::vector < DefaultSymbolType > phi ( const std::vector < common::ranked_symbol < > > & follow ) { - return std::transform < DefaultSymbolType > ( follow, []( const common::ranked_symbol < > & symbol ) { return DefaultSymbolType ( alphabet::RankedSymbol < > ( symbol ) ); } ); + return ext::transform < DefaultSymbolType > ( follow, []( const common::ranked_symbol < > & symbol ) { return DefaultSymbolType ( alphabet::RankedSymbol < > ( symbol ) ); } ); } bool isSubstSymbolPresent ( const std::set < common::ranked_symbol < > > & container, const std::set < common::ranked_symbol < > > & substAlphabet ) { diff --git a/alib2cli/src/parser/Parser.h b/alib2cli/src/parser/Parser.h index 279f1e22668700d2495f601e2ae31840783c8476..1b502579038f6a37eacb4453a5c2d61860e8dc8f 100644 --- a/alib2cli/src/parser/Parser.h +++ b/alib2cli/src/parser/Parser.h @@ -26,7 +26,7 @@ public: template < class ... Tokens > bool check ( Tokens ... tokens ) const { // TODO repace in c++17 with fold expressions - return std::orAll ( m_current.m_type == tokens ... ); + return ext::orAll ( m_current.m_type == tokens ... ); } bool check_nonreserved_kw ( const std::string & kw ) const { diff --git a/alib2common/src/common/createUnique.hpp b/alib2common/src/common/createUnique.hpp index 2e89d88817050a9f11aa26a08d8d072fe92f0f7c..cd6487d66a923a4bb2718f8386a47404252c8840 100644 --- a/alib2common/src/common/createUnique.hpp +++ b/alib2common/src/common/createUnique.hpp @@ -30,7 +30,7 @@ typename std::enable_if < std::all_same < std::set < T >, Alphabets ... >::value do { // TODO repace in c++17 with fold expressions - if ( std::andAll ( alphabets.count ( attempt ) == 0 ... ) ) + if ( ext::andAll ( alphabets.count ( attempt ) == 0 ... ) ) return attempt; ++attempt; diff --git a/alib2data/src/automaton/PDA/DPDA.h b/alib2data/src/automaton/PDA/DPDA.h index e1c0c58e649d629a303ee0c963f01b44ce65f340..c86c3ab04a5f82643787e64c705f7f24a8f3f703 100644 --- a/alib2data/src/automaton/PDA/DPDA.h +++ b/alib2data/src/automaton/PDA/DPDA.h @@ -552,7 +552,7 @@ public: for (const std::pair<const std::tuple<StateType, ext::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > >& transition : automaton.getTransitions()) { const auto & popSymbols = std::get<2>(transition.first); const auto & pushSymbols = transition.second.second; - if(std::contains(popSymbols.begin(), popSymbols.end(), symbol ) || std::contains(pushSymbols.begin(), pushSymbols.end(), symbol)) + if(ext::contains(popSymbols.begin(), popSymbols.end(), symbol ) || ext::contains(pushSymbols.begin(), pushSymbols.end(), symbol)) return true; } diff --git a/alib2data/src/automaton/TA/DFTA.h b/alib2data/src/automaton/TA/DFTA.h index 1c6bfc06e37617fdb3dd4a42c2488cad2fec0532..a23e8e30c81afcaa77acf1cc790d4b366c5f2e3f 100644 --- a/alib2data/src/automaton/TA/DFTA.h +++ b/alib2data/src/automaton/TA/DFTA.h @@ -358,7 +358,7 @@ public: return true; for (const std::pair<const std::pair<common::ranked_symbol < SymbolType, RankType >, std::vector<StateType> >, StateType>& t : automaton.getTransitions()) - if(std::contains(t.first.second.begin(), t.first.second.end(), state ) || t.second == state) + if(ext::contains(t.first.second.begin(), t.first.second.end(), state ) || t.second == state) return true; return false; diff --git a/alib2data/src/automaton/TA/NFTA.h b/alib2data/src/automaton/TA/NFTA.h index b2e550f7b8e3f2c12bbd1e4e90c88f77d92edbb1..5a3624f08f1a68ca63825fcca0604aeeb5916a9f 100644 --- a/alib2data/src/automaton/TA/NFTA.h +++ b/alib2data/src/automaton/TA/NFTA.h @@ -410,7 +410,7 @@ public: return true; for (const std::pair<const std::pair<common::ranked_symbol < SymbolType, RankType >, std::vector<StateType> >, std::set<StateType>>& t : automaton.getTransitions()) - if(std::contains(t.first.second.begin(), t.first.second.end(), state ) || t . second.count ( state ) ) + if(ext::contains(t.first.second.begin(), t.first.second.end(), state ) || t . second.count ( state ) ) return true; return false; diff --git a/alib2data/src/tree/common/TreeAuxiliary.h b/alib2data/src/tree/common/TreeAuxiliary.h index 74370036c96fc0646d76ff84ee6fe01d2bd14eee..b19b9e083e88f38ebc242b8fa8d25a4f92f9a6c9 100644 --- a/alib2data/src/tree/common/TreeAuxiliary.h +++ b/alib2data/src/tree/common/TreeAuxiliary.h @@ -37,14 +37,14 @@ public: template < class SymbolType, class RankType > std::set < SymbolType > TreeAuxiliary::unrankSymbols ( const std::set < common::ranked_symbol < SymbolType, RankType > > & alphabet ) { - return std::transform < SymbolType > ( alphabet, [&] ( const common::ranked_symbol < SymbolType, RankType > & symbol ) { + return ext::transform < SymbolType > ( alphabet, [&] ( const common::ranked_symbol < SymbolType, RankType > & symbol ) { return symbol.getSymbol ( ); } ); } template < class SymbolType, class RankType > std::set < common::ranked_symbol < SymbolType, RankType > > TreeAuxiliary::computeBars ( const std::set < common::ranked_symbol < SymbolType, RankType > > & alphabet, const SymbolType & barBase ) { - return std::transform < common::ranked_symbol < SymbolType, RankType > > ( alphabet, [&] ( const common::ranked_symbol < SymbolType, RankType > & symbol ) { + return ext::transform < common::ranked_symbol < SymbolType, RankType > > ( alphabet, [&] ( const common::ranked_symbol < SymbolType, RankType > & symbol ) { return common::ranked_symbol < SymbolType, RankType > ( barBase, symbol.getRank ( ) ); } ); } diff --git a/alib2std/src/extensions/algorithm.hpp b/alib2std/src/extensions/algorithm.hpp index 9e0b1799787a522ff01abd1bd5f767ca72abb635..34da27e717cdc7941b4f6b0ceff538b39cc3837c 100644 --- a/alib2std/src/extensions/algorithm.hpp +++ b/alib2std/src/extensions/algorithm.hpp @@ -11,7 +11,7 @@ #include <algorithm> #include <functional> -namespace std { +namespace ext { template<class InputIt1, class InputIt2, class Compare> bool excludes(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, Compare comp) { @@ -77,6 +77,6 @@ inline bool orAll ( T value, Ts ... other ) { return value || orAll ( other ... ); } -} /* namespace std */ +} /* namespace ext */ #endif /* __ALGORITHM_HPP_ */ diff --git a/alib2std/test-src/extensions/AlgorithmTest.cpp b/alib2std/test-src/extensions/AlgorithmTest.cpp index 7037d6dc073f2e02ebe31955c93c59fa8bde6f9a..829fb7e590d701e68431b716088bf814f758f0d8 100644 --- a/alib2std/test-src/extensions/AlgorithmTest.cpp +++ b/alib2std/test-src/extensions/AlgorithmTest.cpp @@ -18,34 +18,34 @@ void AlgorithmTest::testExclude() { std::cout << sizeof(array1) / sizeof(int); - CPPUNIT_ASSERT(std::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == false); + CPPUNIT_ASSERT(ext::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == false); } { int array1[] = {1, 3, 5}; int array2[] = {2, 4, 6, 8}; - CPPUNIT_ASSERT(std::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == true); - CPPUNIT_ASSERT(std::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == true); + CPPUNIT_ASSERT(ext::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == true); + CPPUNIT_ASSERT(ext::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == true); } { int array1[] = {1, 3, 5, 8}; int array2[] = {2, 4, 6, 8}; - CPPUNIT_ASSERT(std::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == false); - CPPUNIT_ASSERT(std::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == false); + CPPUNIT_ASSERT(ext::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == false); + CPPUNIT_ASSERT(ext::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == false); } { int array1[] = {0}; int array2[] = {2, 4, 6, 8}; - CPPUNIT_ASSERT(std::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == true); - CPPUNIT_ASSERT(std::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == true); + CPPUNIT_ASSERT(ext::excludes(array1, array1 + sizeof(array1) / sizeof(int), array2, array2 + sizeof(array2) / sizeof(int)) == true); + CPPUNIT_ASSERT(ext::excludes(array2, array2 + sizeof(array2) / sizeof(int), array1, array1 + sizeof(array1) / sizeof(int)) == true); - CPPUNIT_ASSERT(std::excludes(array1, array1, array2, array2) == true); - CPPUNIT_ASSERT(std::excludes(array2, array2, array1, array1) == true); + CPPUNIT_ASSERT(ext::excludes(array1, array1, array2, array2) == true); + CPPUNIT_ASSERT(ext::excludes(array2, array2, array1, array1) == true); } } @@ -54,9 +54,9 @@ void AlgorithmTest::testTransform() { std::set<long> ref = {2, 3, 4, 5}; /* std::function<long(const int&)> lamb = [](const int& elem) { return (long) elem + 1; }; - std::set<long> out = std::transform<long>(in, lamb); //*/ + std::set<long> out = ext::transform<long>(in, lamb); //*/ - std::set<long> out = std::transform<long>(in, [](const int& elem) { return (long) elem + 1; }); + std::set<long> out = ext::transform<long>(in, [](const int& elem) { return (long) elem + 1; }); CPPUNIT_ASSERT(ref == out); }