diff --git a/alib2data/src/automaton/AutomatonFromStringParser.cpp b/alib2data/src/automaton/AutomatonFromStringParser.cpp
index 96d2ae27f103523a8da61e2b57a9fa6cf022ddfd..d30f3910171eaa649d3f039fead2cbecc15e0908 100644
--- a/alib2data/src/automaton/AutomatonFromStringParser.cpp
+++ b/alib2data/src/automaton/AutomatonFromStringParser.cpp
@@ -302,7 +302,7 @@ void AutomatonFromStringParser::parseEpsilonNFATransition(std::istream& input, s
 		} else {
 			token = m_AutomatonLexer.next(input);
 		}
-		iter++;
+		++iter;
 	}
 	m_AutomatonLexer.putback(input, token);
 
@@ -339,7 +339,7 @@ void AutomatonFromStringParser::parseMultiInitialStateNFATransition(std::istream
 		} else {
 			token = m_AutomatonLexer.next(input);
 		}
-		iter++;
+		++iter;
 	}
 	m_AutomatonLexer.putback(input, token);
 
@@ -379,7 +379,7 @@ void AutomatonFromStringParser::parseNFATransition(std::istream& input, std::set
 		} else {
 			token = m_AutomatonLexer.next(input);
 		}
-		iter++;
+		++iter;
 	}
 	m_AutomatonLexer.putback(input, token);
 
@@ -416,7 +416,7 @@ void AutomatonFromStringParser::parseDFATransition(std::istream& input, std::set
 		} else {
 			token = m_AutomatonLexer.next(input);
 		}
-		iter++;
+		++iter;
 	}
 	m_AutomatonLexer.putback(input, token);
 
diff --git a/alib2data/src/automaton/AutomatonFromXMLParser.cpp b/alib2data/src/automaton/AutomatonFromXMLParser.cpp
index 1a00c83623c2a66509cff35e4d35aafd5d448b16..7ccea32d8751557e88313b20dce11df5ea8bce38 100644
--- a/alib2data/src/automaton/AutomatonFromXMLParser.cpp
+++ b/alib2data/src/automaton/AutomatonFromXMLParser.cpp
@@ -485,9 +485,9 @@ DFTA AutomatonFromXMLParser::parseDFTA(std::deque<sax::Token>::iterator& input)
 	std::set<State> finalStates = parseFinalStates(input);
 
 	DFTA automaton;
-	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setFinalStates(finalStates);
+	automaton.setStates(std::move(states));
+	automaton.setInputSymbols(std::move(inputSymbols));
+	automaton.setFinalStates(std::move(finalStates));
 
 	parseTransitions<DFTA>(input, automaton);
 
@@ -503,9 +503,9 @@ NFTA AutomatonFromXMLParser::parseNFTA(std::deque<sax::Token>::iterator& input)
 	std::set<State> finalStates = parseFinalStates(input);
 
 	NFTA automaton;
-	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setFinalStates(finalStates);
+	automaton.setStates(std::move(states));
+	automaton.setInputSymbols(std::move(inputSymbols));
+	automaton.setFinalStates(std::move(finalStates));
 
 	parseTransitions<NFTA>(input, automaton);
 
@@ -956,7 +956,7 @@ void AutomatonFromXMLParser::parseTransition(std::deque<sax::Token>::iterator& i
 	State to = parseTransitionTo(input);
 	popToken(input, sax::Token::TokenType::END_ELEMENT, "transition");
 
-	automaton.addTransition(inputSymbol, from, to);
+	automaton.addTransition(std::move(inputSymbol), std::move(from), std::move(to));
 }
 
 void AutomatonFromXMLParser::parseTransition(std::deque<sax::Token>::iterator& input, NFTA& automaton) const {
@@ -966,7 +966,7 @@ void AutomatonFromXMLParser::parseTransition(std::deque<sax::Token>::iterator& i
 	State to = parseTransitionTo(input);
 	popToken(input, sax::Token::TokenType::END_ELEMENT, "transition");
 
-	automaton.addTransition(inputSymbol, from, to);
+	automaton.addTransition(std::move(inputSymbol), std::move(from), std::move(to));
 }
 
 State AutomatonFromXMLParser::parseTransitionTo(std::deque<sax::Token>::iterator& input) const {
@@ -1006,7 +1006,7 @@ Shift AutomatonFromXMLParser::parseTransitionShift(std::deque<sax::Token>::itera
 	} else {
 		throw sax::ParserException(sax::Token("", sax::Token::TokenType::CHARACTER), *input);
 	}
-	input++;
+	++input;
 	popToken(input, sax::Token::TokenType::END_ELEMENT, "shift");
 
 	return shift;
@@ -1072,7 +1072,7 @@ std::variant<string::Epsilon, alphabet::Symbol> AutomatonFromXMLParser::parseTra
 
 	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "epsilon")) {
 		std::variant<string::Epsilon, alphabet::Symbol> result(string::Epsilon::EPSILON);
-		input++;
+		++input;
 		popToken(input, sax::Token::TokenType::END_ELEMENT, "epsilon");
 		popToken(input, sax::Token::TokenType::END_ELEMENT, "input");
 		return result;
@@ -1088,7 +1088,7 @@ std::variant<string::Epsilon, alphabet::Symbol> AutomatonFromXMLParser::parseTra
 
 	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "epsilon")) {
 		std::variant<string::Epsilon, alphabet::Symbol> result(string::Epsilon::EPSILON);
-		input++;
+		++input;
 		popToken(input, sax::Token::TokenType::END_ELEMENT, "epsilon");
 		popToken(input, sax::Token::TokenType::END_ELEMENT, "output");
 		return result;
diff --git a/alib2data/src/automaton/FSM/CompactNFA.cpp b/alib2data/src/automaton/FSM/CompactNFA.cpp
index 3e6df2497fb76aca170ec99025f7e8f58038e752..c7989a57fdba0ae3cd9069dbda40281c070ec6a7 100644
--- a/alib2data/src/automaton/FSM/CompactNFA.cpp
+++ b/alib2data/src/automaton/FSM/CompactNFA.cpp
@@ -86,8 +86,8 @@ bool CompactNFA::removeState(const State& state) {
 		throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state.");
 	}
 
-	for (std::map<std::pair<State, string::LinearString>, std::set<State> >::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
-		if (t->first.first == state || t->second.find(state) != t->second.end())
+	for (const std::pair<std::pair<State, string::LinearString>, std::set<State> >& t : transitions) {
+		if (t.first.first == state || t.second.find(state) != t.second.end())
 			throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition.");
 	}
 
diff --git a/alib2data/src/automaton/PDA/DPDA.cpp b/alib2data/src/automaton/PDA/DPDA.cpp
index cad653a7b73f502a4f25ac7a09de148be84f0252..47945f424b32b16bc29bb401d54b8042508cee08 100644
--- a/alib2data/src/automaton/PDA/DPDA.cpp
+++ b/alib2data/src/automaton/PDA/DPDA.cpp
@@ -117,7 +117,7 @@ bool DPDA::addTransition(State from, std::variant<string::Epsilon, alphabet::Sym
 					const std::vector<alphabet::Symbol>& shorter = (alpha.size() < beta.size()) ? alpha : beta;
 					const std::vector<alphabet::Symbol>& longer = (alpha.size() < beta.size()) ? beta : alpha;
 
-					for(auto itS = shorter.begin(), itL = longer.begin(); itS != shorter.end(); itS++, itL++) {
+					for(auto itS = shorter.begin(), itL = longer.begin(); itS != shorter.end(); ++itS, ++itL) {
 						if(*itS != *itL) return false;
 					}
 					return true;
@@ -134,7 +134,7 @@ bool DPDA::addTransition(State from, std::variant<string::Epsilon, alphabet::Sym
 					const std::vector<alphabet::Symbol>& shorter = (alpha.size() < beta.size()) ? alpha : beta;
 					const std::vector<alphabet::Symbol>& longer = (alpha.size() < beta.size()) ? beta : alpha;
 
-					for(auto itS = shorter.begin(), itL = longer.begin(); itS != shorter.end(); itS++, itL++) {
+					for(auto itS = shorter.begin(), itL = longer.begin(); itS != shorter.end(); ++itS, ++itL) {
 						if(*itS != *itL) return false;
 					}
 					return true;
diff --git a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp
index 2b1edfcce370636274abc85cd85696994167e60b..cca3fdc319385ce60cb8e772b2c7a4b7f7dfd7f3 100644
--- a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp
+++ b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp
@@ -34,20 +34,19 @@ bool SinglePopDPDA::removeState(const State& state) {
 		throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state.");
 	}
 
-	for (std::map<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >::const_iterator transition = transitions.begin(); transition != transitions.end(); transition++) {
-		if (state == std::get<0>(transition->first))
+	for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) {
+		if (state == std::get<0>(transition.first))
 			throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition.");
-		if(transition->second.first == state)
+		if(transition.second.first == state)
 			throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition.");
-
 	}
 
 	return states.erase(state);
 }
 
 bool SinglePopDPDA::removeInputSymbol(const alphabet::Symbol& symbol) {
-	for (std::map<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >::const_iterator transition = transitions.begin(); transition != transitions.end(); transition++) {
-		if (std::get<1>(transition->first).is<alphabet::Symbol>() && symbol == std::get<1>(transition->first).get<alphabet::Symbol>())
+	for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) {
+		if (std::get<1>(transition.first).is<alphabet::Symbol>() && symbol == std::get<1>(transition.first).get<alphabet::Symbol>())
 			throw AutomatonException("Symbol \"" + (std::string) symbol + "\" is used in transition.");
 	}
 
@@ -55,11 +54,11 @@ bool SinglePopDPDA::removeInputSymbol(const alphabet::Symbol& symbol) {
 }
 
 bool SinglePopDPDA::removeStackSymbol(const alphabet::Symbol& symbol) {
-	for (std::map<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >::const_iterator transition = transitions.begin(); transition != transitions.end(); transition++) {
-		if (symbol == std::get<2>(transition->first))
+	for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) {
+		if (symbol == std::get<2>(transition.first))
 			throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition.");
 
-		if (std::find(transition->second.second.begin(), transition->second.second.end(), symbol) != transition->second.second.end())
+		if (std::find(transition.second.second.begin(), transition.second.second.end(), symbol) != transition.second.second.end())
 			throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition.");
 	}
 
@@ -87,9 +86,9 @@ bool SinglePopDPDA::addTransition(State from, std::variant<string::Epsilon, alph
 		throw AutomatonException("Stack symbol \"" + (std::string) pop + "\" doesn't exist.");
 	}
 
-	for(std::vector<alphabet::Symbol>::const_iterator pushSymbol = push.begin(); pushSymbol != push.end(); pushSymbol++) {
-		if (stackAlphabet.find(*pushSymbol) == stackAlphabet.end()) {
-			throw AutomatonException("Stack symbol \"" + (std::string) *pushSymbol + "\" doesn't exist.");
+	for(const alphabet::Symbol& pushSymbol : push) {
+		if (stackAlphabet.find(pushSymbol) == stackAlphabet.end()) {
+			throw AutomatonException("Stack symbol \"" + (std::string) pushSymbol + "\" doesn't exist.");
 		}
 	}
 
diff --git a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp
index e4d5a147656c1957bb05d0f9d21a02a3ba7b662b..ecc6f9b5a09bfa49170d7b9b268230e91bf6c247 100644
--- a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp
+++ b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp
@@ -89,9 +89,9 @@ bool SinglePopNPDA::addTransition(State from, std::variant<string::Epsilon, alph
 		throw AutomatonException("Stack symbol \"" + (std::string) pop + "\" doesn't exist.");
 	}
 
-	for(std::vector<alphabet::Symbol>::const_iterator pushSymbol = push.begin(); pushSymbol != push.end(); pushSymbol++) {
-		if (stackAlphabet.find(*pushSymbol) == stackAlphabet.end()) {
-			throw AutomatonException("Stack symbol \"" + (std::string) *pushSymbol + "\" doesn't exist.");
+	for(const alphabet::Symbol& pushSymbol : push) {
+		if (stackAlphabet.find(pushSymbol) == stackAlphabet.end()) {
+			throw AutomatonException("Stack symbol \"" + (std::string) pushSymbol + "\" doesn't exist.");
 		}
 	}
 
diff --git a/alib2data/src/automaton/TA/DFTA.cpp b/alib2data/src/automaton/TA/DFTA.cpp
index fe00153de185dc6419740ace2708c2a6dc902a9f..a6f4fc348e74f81b0d335812622c2262a537fd1c 100644
--- a/alib2data/src/automaton/TA/DFTA.cpp
+++ b/alib2data/src/automaton/TA/DFTA.cpp
@@ -30,20 +30,20 @@ bool DFTA::removeState(const State& state) {
 	}
 
 	AutomatonException ex ("State \"" + (std::string) state.getName() + "\" is used in transition.");
-	for (std::map<std::pair<alphabet::RankedSymbol, std::vector<State> >, State>::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
-		const std::vector<State> states = t -> first.second;
-		for (std::vector<State>::const_iterator it = states.begin(); it != states.end(); ++it) {
-			if (*it == state) throw ex;
+	for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, State>& t : transitions) {
+		const std::vector<State>& states = t . first.second;
+		for (const State& it : states) {
+			if (it == state) throw ex;
 		}
-		if (t -> second == state) throw ex;
+		if (t . second == state) throw ex;
 	}
 
 	return states.erase(state);
 }
 
 bool DFTA::removeInputSymbol(const alphabet::RankedSymbol& symbol) {
-	for (std::map<std::pair<alphabet::RankedSymbol, std::vector<State> >, State>::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
-		if (t -> first.first == symbol)
+	for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, State>& t : transitions) {
+		if (t . first.first == symbol)
 			throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used.");
 	}
 
@@ -51,7 +51,6 @@ bool DFTA::removeInputSymbol(const alphabet::RankedSymbol& symbol) {
 }
 
 bool DFTA::addTransition(const alphabet::RankedSymbol & symbol, const std::vector<State> & prevStates, const State & next) {
-
 	if (prevStates.size() != symbol.getRank().getData())
 		throw AutomatonException("Number of states doesn't match rank of the symbol");
 
@@ -61,9 +60,9 @@ bool DFTA::addTransition(const alphabet::RankedSymbol & symbol, const std::vecto
 	if (states.find(next) == states.end())
 		throw AutomatonException("State \"" + (std::string) next.getName() + "\" doesn't exist.");
 
-	for (std::vector<State>::const_iterator it = prevStates.begin(); it != prevStates.end(); ++it) {
-		if (states.find(*it) == states.end())
-			throw AutomatonException("State \"" + (std::string) it -> getName() + "\" doesn't exist.");
+	for (const State& it : prevStates) {
+		if (states.find(it) == states.end())
+			throw AutomatonException("State \"" + (std::string) it . getName() + "\" doesn't exist.");
 	}
 
 	std::pair<alphabet::RankedSymbol, std::vector<State> > key = std::make_pair(symbol, prevStates);
diff --git a/alib2data/src/automaton/TA/NFTA.cpp b/alib2data/src/automaton/TA/NFTA.cpp
index fce9ee97f1ed3c35395dd22f22e56c616f17e0b2..e1875c18bade20506046a3c1aa0eabe20f0d06e2 100644
--- a/alib2data/src/automaton/TA/NFTA.cpp
+++ b/alib2data/src/automaton/TA/NFTA.cpp
@@ -39,20 +39,20 @@ bool NFTA::removeState(const State& state) {
 	}
 
 	AutomatonException ex ("State \"" + (std::string) state.getName() + "\" is used in transition.");
-	for (std::map<std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
-		const std::vector<State> states = t -> first.second;
-		for (std::vector<State>::const_iterator it = states.begin(); it != states.end(); ++it) {
-			if (*it == state) throw ex;
+	for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >& t : transitions) {
+		const std::vector<State>& states = t . first.second;
+		for (const State& it : states) {
+			if (it == state) throw ex;
 		}
-		if (t -> second.find(state) != t -> second.end()) throw ex;
+		if (t . second.find(state) != t . second.end()) throw ex;
 	}
 
 	return states.erase(state);
 }
 
 bool NFTA::removeInputSymbol(const alphabet::RankedSymbol& symbol) {
-	for (std::map<std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
-		if (t -> first.first == symbol)
+	for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >& t : transitions) {
+		if (t . first.first == symbol)
 			throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used.");
 	}
 
@@ -70,9 +70,9 @@ bool NFTA::addTransition(const alphabet::RankedSymbol & symbol, const std::vecto
 	if (states.find(next) == states.end())
 		throw AutomatonException("State \"" + (std::string) next.getName() + "\" doesn't exist.");
 
-	for (std::vector<State>::const_iterator it = prevStates.begin(); it != prevStates.end(); ++it) {
-		if (states.find(*it) == states.end())
-			throw AutomatonException("State \"" + (std::string) it -> getName() + "\" doesn't exist.");
+	for (const State& it : prevStates) {
+		if (states.find(it) == states.end())
+			throw AutomatonException("State \"" + (std::string) it . getName() + "\" doesn't exist.");
 	}
 
 	std::pair<alphabet::RankedSymbol, std::vector<State> > key = std::make_pair(symbol, prevStates);
@@ -85,8 +85,8 @@ bool NFTA::removeTransition(const alphabet::RankedSymbol symbol, const std::vect
 }
 
 bool NFTA::isDeterministic() const {
-	for (std::map<std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
-		if (t -> second.size() != 1 || t -> second.size() != 0) {
+	for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >& t : transitions) {
+		if (t . second.size() != 1 || t . second.size() != 0) {
 			return false;
 		}
 	}
diff --git a/alib2data/src/automaton/TM/OneTapeDTM.cpp b/alib2data/src/automaton/TM/OneTapeDTM.cpp
index c4a86cd0cca81c7317a978ba5f26e559268c19b6..0837107daa7544d7ea63aca018b1022f233031e0 100644
--- a/alib2data/src/automaton/TM/OneTapeDTM.cpp
+++ b/alib2data/src/automaton/TM/OneTapeDTM.cpp
@@ -32,8 +32,8 @@ bool OneTapeDTM::removeState(const State& state) {
 		throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state.");
 	}
 
-	for (std::map<std::pair<State, alphabet::Symbol>, std::tuple<State, alphabet::Symbol, Shift> >::const_iterator transition = transitions.begin(); transition != transitions.end(); transition++) {
-		if (state == transition->first.first || state == std::get<0>(transition->second))
+	for (const std::pair<std::pair<State, alphabet::Symbol>, std::tuple<State, alphabet::Symbol, Shift> >& transition : transitions) {
+		if (state == transition.first.first || state == std::get<0>(transition.second))
 			throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in a transition.");
 	}
 
@@ -49,8 +49,8 @@ bool OneTapeDTM::removeTapeSymbol(const alphabet::Symbol& symbol) {
 		throw AutomatonException("Tape symbol \"" + (std::string) symbol + "\" is in input alphabet.");
 	}
 
-	for (std::map<std::pair<State, alphabet::Symbol>, std::tuple<State, alphabet::Symbol, Shift> >::const_iterator transition = transitions.begin(); transition != transitions.end(); transition++) {
-		if (symbol == transition->first.second || symbol == std::get<1>(transition->second))
+	for (const std::pair<std::pair<State, alphabet::Symbol>, std::tuple<State, alphabet::Symbol, Shift> >& transition : transitions) {
+		if (symbol == transition.first.second || symbol == std::get<1>(transition.second))
 			throw AutomatonException("Tape symbol \"" + (std::string) symbol + "\" is used in transition.");
 	}
 
diff --git a/alib2data/src/debug/bfdStacktrace.cpp b/alib2data/src/debug/bfdStacktrace.cpp
index 02b2ca0c140b840b23a19cb6dba8eb95ae6b57d1..e4a5d692dc4c8bee118ecb326b5eacb2e5ab56df 100644
--- a/alib2data/src/debug/bfdStacktrace.cpp
+++ b/alib2data/src/debug/bfdStacktrace.cpp
@@ -71,7 +71,7 @@ string bfdStacktrace(unsigned int max_frames) {
 
 	// iterate over the returned symbol lines. skip the first, it is the
 	// address of this function.
-	for (int i = 1; i < addrlen; i++) {
+	for (int i = 1; i < addrlen; ++i) {
 		char *begin_name = 0, *begin_offset = 0, *end_offset = 0, *addr_offset = 0;
 
 		// find parentheses and +address offset surrounding the mangled name:
diff --git a/alib2data/src/debug/simpleStacktrace.cpp b/alib2data/src/debug/simpleStacktrace.cpp
index efe159df5fdc798596b975058b6799ad339be323..e57900b4e8cf0438af733c584a134094dec25c6d 100644
--- a/alib2data/src/debug/simpleStacktrace.cpp
+++ b/alib2data/src/debug/simpleStacktrace.cpp
@@ -55,7 +55,7 @@ string simpleStacktrace(unsigned int max_frames) {
 
 	// iterate over the returned symbol lines. skip the first, it is the
 	// address of this function.
-	for (int i = 1; i < addrlen; i++) {
+	for (int i = 1; i < addrlen; ++i) {
 		char *begin_name = 0, *begin_offset = 0, *end_offset = 0, *addr_offset = 0;
 
 		// find parentheses and +address offset surrounding the mangled name:
diff --git a/alib2data/src/exception/ExceptionFromXMLParser.cpp b/alib2data/src/exception/ExceptionFromXMLParser.cpp
index b477e99fefb58ca93baf9b5e85320a21cf42ab46..a01dc153bdda65698ff67167d2f5e3c7a802cc81 100644
--- a/alib2data/src/exception/ExceptionFromXMLParser.cpp
+++ b/alib2data/src/exception/ExceptionFromXMLParser.cpp
@@ -24,14 +24,14 @@ AlibException ExceptionFromXMLParser::parseException(std::deque<sax::Token>::ite
 	std::string cause = "";
 	if (input->getType() == sax::Token::TokenType::CHARACTER) {
 		cause = std::move(*input).moveData();
-		input++;
+		++input;
 	}
 	popToken(input, sax::Token::TokenType::END_ELEMENT, "cause");
 	popToken(input, sax::Token::TokenType::START_ELEMENT, "backtrace");
 	std::string backtrace = "";
 	if (input->getType() == sax::Token::TokenType::CHARACTER) {
 		backtrace = std::move(*input).moveData();
-		input++;
+		++input;
 	}
 	popToken(input, sax::Token::TokenType::END_ELEMENT, "backtrace");
 	popToken(input, sax::Token::TokenType::END_ELEMENT, alib::Names::EXCEPTION_ALIB_EXCEPTION);
diff --git a/alib2data/src/grammar/ContextFree/LG.cpp b/alib2data/src/grammar/ContextFree/LG.cpp
index 22217ef54ec6039baafa170f670f3c68f3415db7..0e193a764ee90e8944b326845980e01d2790136d 100644
--- a/alib2data/src/grammar/ContextFree/LG.cpp
+++ b/alib2data/src/grammar/ContextFree/LG.cpp
@@ -136,7 +136,7 @@ bool LG::removeRule(const alphabet::Symbol& leftHandSide, const std::tuple<std::
 
 bool LG::addRawRule(alphabet::Symbol leftHandSide, std::vector<alphabet::Symbol> rightHandSide) {
 	std::vector<alphabet::Symbol>::iterator nonterminalPosition = rightHandSide.begin();
-	for(; nonterminalPosition != rightHandSide.end(); nonterminalPosition++) {
+	for(; nonterminalPosition != rightHandSide.end(); ++nonterminalPosition) {
 		if(nonterminalAlphabet.count(*nonterminalPosition)) break;
 	}
 
@@ -168,7 +168,7 @@ std::map<alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>> LG::getRawRu
 
 bool LG::removeRawRule(const alphabet::Symbol& leftHandSide, const std::vector<alphabet::Symbol>& rightHandSide) {
 	std::vector<alphabet::Symbol>::const_iterator nonterminalPosition = rightHandSide.begin();
-	for(; nonterminalPosition != rightHandSide.end(); nonterminalPosition++) {
+	for(; nonterminalPosition != rightHandSide.end(); ++nonterminalPosition) {
 		if(nonterminalAlphabet.count(*nonterminalPosition)) break;
 	}
 
diff --git a/alib2data/src/grammar/GrammarFromXMLParser.cpp b/alib2data/src/grammar/GrammarFromXMLParser.cpp
index 4259503c8c35431d508629298a73078e55289e19..43849203e95bb49a7697de5513e90e5a985e543c 100644
--- a/alib2data/src/grammar/GrammarFromXMLParser.cpp
+++ b/alib2data/src/grammar/GrammarFromXMLParser.cpp
@@ -344,7 +344,7 @@ bool GrammarFromXMLParser::parseGeneratesEpsilon(std::deque<sax::Token>::iterato
 	bool generatesEpsilon;
 	popToken(input, sax::Token::TokenType::START_ELEMENT, "generatesEpsilon");
 	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "true")) {
-		input++;
+		++input;
 		popToken(input, sax::Token::TokenType::END_ELEMENT, "true");
 		generatesEpsilon = true;
 	} else {
@@ -454,7 +454,7 @@ std::vector<alphabet::Symbol> GrammarFromXMLParser::parseRuleLContext(std::deque
 	std::vector<alphabet::Symbol> lContext;
 	popToken(input, sax::Token::TokenType::START_ELEMENT, "lContext");
 	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "epsilon")) {
-		input++;
+		++input;
 		popToken(input, sax::Token::TokenType::END_ELEMENT, "epsilon");
 	} else while (isTokenType(input, sax::Token::TokenType::START_ELEMENT)) {
 		lContext.push_back(alib::xmlApi<alphabet::Symbol>::parse(input));
@@ -467,7 +467,7 @@ std::vector<alphabet::Symbol> GrammarFromXMLParser::parseRuleLHS(std::deque<sax:
 	std::vector<alphabet::Symbol> lhs;
 	popToken(input, sax::Token::TokenType::START_ELEMENT, "lhs");
 	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "epsilon")) {
-		input++;
+		++input;
 		popToken(input, sax::Token::TokenType::END_ELEMENT, "epsilon");
 	} else while (isTokenType(input, sax::Token::TokenType::START_ELEMENT)) {
 		lhs.push_back(alib::xmlApi<alphabet::Symbol>::parse(input));
@@ -487,7 +487,7 @@ std::vector<alphabet::Symbol> GrammarFromXMLParser::parseRuleRContext(std::deque
 	std::vector<alphabet::Symbol> rContext;
 	popToken(input, sax::Token::TokenType::START_ELEMENT, "rContext");
 	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "epsilon")) {
-		input++;
+		++input;
 		popToken(input, sax::Token::TokenType::END_ELEMENT, "epsilon");
 	} else while (isTokenType(input, sax::Token::TokenType::START_ELEMENT)) {
 		rContext.push_back(alib::xmlApi<alphabet::Symbol>::parse(input));
@@ -511,7 +511,7 @@ std::vector<alphabet::Symbol> GrammarFromXMLParser::parseRuleRHS(std::deque<sax:
 	std::vector<alphabet::Symbol> rhs;
 	popToken(input, sax::Token::TokenType::START_ELEMENT, "rhs");
 	if(isToken(input, sax::Token::TokenType::START_ELEMENT, "epsilon")) {
-		input++;
+		++input;
 		popToken(input, sax::Token::TokenType::END_ELEMENT, "epsilon");
 	} else while (isTokenType(input, sax::Token::TokenType::START_ELEMENT)) {
 		rhs.push_back(alib::xmlApi<alphabet::Symbol>::parse(input));
diff --git a/alib2data/src/graph/directed/AdjacencyListDirectedGraph.cpp b/alib2data/src/graph/directed/AdjacencyListDirectedGraph.cpp
index 565567c4549a8a7500d2761b5168bef5aea997d0..629e9d59701adea534d63979813b833dccabb444 100644
--- a/alib2data/src/graph/directed/AdjacencyListDirectedGraph.cpp
+++ b/alib2data/src/graph/directed/AdjacencyListDirectedGraph.cpp
@@ -105,15 +105,12 @@ bool AdjacencyListDirectedGraph::removeNode(const Node &node)
 
 	adj.erase(search);
 
-	auto i = edges.begin();
-	while (i != edges.end()) {
-		if (i->getFromNode() == node) {
-			edges.erase(i++);
-		} else if (i->getToNode() == node) {
-			listRemoveOne(adj[i->getFromNode()], node);
-			edges.erase(i++);
-		} else {
-			i++;
+	for (auto& i : edges) {
+		if (i.getFromNode() == node) {
+			edges.erase(i);
+		} else if (i.getToNode() == node) {
+			listRemoveOne(adj[i.getFromNode()], node);
+			edges.erase(i);
 		}
 	}
 
diff --git a/alib2data/src/graph/directed/AdjacencyMatrixDirectedGraph.cpp b/alib2data/src/graph/directed/AdjacencyMatrixDirectedGraph.cpp
index d4631d8d1517826934e74cefc213f5417fee8909..e8051f94423f50230d49436adf22e2e29b8379ca 100644
--- a/alib2data/src/graph/directed/AdjacencyMatrixDirectedGraph.cpp
+++ b/alib2data/src/graph/directed/AdjacencyMatrixDirectedGraph.cpp
@@ -102,15 +102,12 @@ bool AdjacencyMatrixDirectedGraph::removeNode(const Node &node)
 
 	adj.erase(search);
 
-	auto i = edges.begin();
-	while (i != edges.end()) {
-		if (i->getFromNode() == node) {
-			edges.erase(i++);
-		} else if (i->getToNode() == node) {
-			adj[i->getFromNode()].erase(node);
-			edges.erase(i++);
-		} else {
-			i++;
+	for (auto& i : edges) {
+		if (i.getFromNode() == node) {
+			edges.erase(i);
+		} else if (i.getToNode() == node) {
+			adj[i.getFromNode()].erase(node);
+			edges.erase(i);
 		}
 	}
 
@@ -125,7 +122,7 @@ bool AdjacencyMatrixDirectedGraph::addEdge(const DirectedEdge &edge)
 
 	edges.insert(edge);
 
-	adj[edge.getFromNode()][edge.getToNode()]++;
+	adj[edge.getFromNode()][edge.getToNode()] += 1;
 	adj[edge.getToNode()]; // insert key
 
 	return true;
diff --git a/alib2data/src/graph/undirected/AdjacencyListUndirectedGraph.cpp b/alib2data/src/graph/undirected/AdjacencyListUndirectedGraph.cpp
index b1365d3241a943035e321c09deb9c25c6197bf0c..1a4256ff4f6669fbde20daab846cd5eaf738c106 100644
--- a/alib2data/src/graph/undirected/AdjacencyListUndirectedGraph.cpp
+++ b/alib2data/src/graph/undirected/AdjacencyListUndirectedGraph.cpp
@@ -98,16 +98,13 @@ bool AdjacencyListUndirectedGraph::removeNode(const Node &node)
 
 	adj.erase(search);
 
-	auto i = edges.begin();
-	while (i != edges.end()) {
-		if (i->getFirstNode() == node) {
-			listRemoveOne(adj[i->getSecondNode()], node);
-			edges.erase(i++);
-		} else if (i->getSecondNode() == node) {
-			listRemoveOne(adj[i->getFirstNode()], node);
-			edges.erase(i++);
-		} else {
-			i++;
+	for (auto& i : edges) {
+		if (i.getFirstNode() == node) {
+			listRemoveOne(adj[i.getSecondNode()], node);
+			edges.erase(i);
+		} else if (i.getSecondNode() == node) {
+			listRemoveOne(adj[i.getFirstNode()], node);
+			edges.erase(i);
 		}
 	}
 
diff --git a/alib2data/src/graph/undirected/AdjacencyMatrixUndirectedGraph.cpp b/alib2data/src/graph/undirected/AdjacencyMatrixUndirectedGraph.cpp
index 25818ebfc40361058ba982588b5655dac723e4b2..ba0ba19f12497fb19dac6900ea7e3b98f9c21180 100644
--- a/alib2data/src/graph/undirected/AdjacencyMatrixUndirectedGraph.cpp
+++ b/alib2data/src/graph/undirected/AdjacencyMatrixUndirectedGraph.cpp
@@ -103,16 +103,13 @@ bool AdjacencyMatrixUndirectedGraph::removeNode(const Node &node)
 
 	adj.erase(search);
 
-	auto i = edges.begin();
-	while (i != edges.end()) {
-		if (i->getFirstNode() == node) {
-			adj[i->getSecondNode()].erase(node);
-			edges.erase(i++);
-		} else if (i->getSecondNode() == node) {
-			adj[i->getFirstNode()].erase(node);
-			edges.erase(i++);
-		} else {
-			i++;
+	for (auto& i : edges) {
+		if (i.getFirstNode() == node) {
+			adj[i.getSecondNode()].erase(node);
+			edges.erase(i);
+		} else if (i.getSecondNode() == node) {
+			adj[i.getFirstNode()].erase(node);
+			edges.erase(i);
 		}
 	}
 
@@ -127,8 +124,8 @@ bool AdjacencyMatrixUndirectedGraph::addEdge(const UndirectedEdge &edge)
 
 	edges.insert(edge);
 
-	adj[edge.getFirstNode()][edge.getSecondNode()]++;
-	adj[edge.getSecondNode()][edge.getFirstNode()]++;
+	adj[edge.getFirstNode()][edge.getSecondNode()] += 1;
+	adj[edge.getSecondNode()][edge.getFirstNode()] += 1;
 
 	return true;
 }
diff --git a/alib2data/src/label/LabelFromXMLParser.cpp b/alib2data/src/label/LabelFromXMLParser.cpp
index 92185e0a590e42382805b7f17c5cacc68b904f8e..d92cb36eac81138deffc45664d1ee0e01409131d 100644
--- a/alib2data/src/label/LabelFromXMLParser.cpp
+++ b/alib2data/src/label/LabelFromXMLParser.cpp
@@ -41,7 +41,7 @@ Label LabelFromXMLParser::parseLabel(std::deque<sax::Token>::iterator& input, co
 }
 
 bool LabelFromXMLParser::first(const std::deque<sax::Token>::const_iterator& input) const {
-	if(alib::xmlApi<PrimitiveLabel>::first(input) || alib::xmlApi<ObjectLabel>::first(input) || alib::xmlApi<LabelSetLabel>::first(input) || alib::xmlApi<LabelPairLabel>::first(input)) {
+	if(alib::xmlApi<PrimitiveLabel>::first(input) || alib::xmlApi<HexavigesimalLabel>::first(input) || alib::xmlApi<ObjectLabel>::first(input) || alib::xmlApi<LabelSetLabel>::first(input) || alib::xmlApi<LabelPairLabel>::first(input)  || alib::xmlApi<UniqueLabel>::first(input) ) {
 		return true;
 	} else {
 		return false;
diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpAlternation.cpp b/alib2data/src/regexp/unbounded/UnboundedRegExpAlternation.cpp
index 27f3ba0deea93209e3112a0efe5ee4ff424e1285..60d258cca1a5a2bf800e22dfc8e9d5f39a4818ff 100644
--- a/alib2data/src/regexp/unbounded/UnboundedRegExpAlternation.cpp
+++ b/alib2data/src/regexp/unbounded/UnboundedRegExpAlternation.cpp
@@ -116,7 +116,7 @@ int UnboundedRegExpAlternation::compare(const UnboundedRegExpAlternation& other)
 
 	auto thisIter = this->elements.begin();
 	auto otherIter = other.elements.begin();
-	for(; thisIter != this->elements.end(); thisIter++, otherIter++) {
+	for(; thisIter != this->elements.end(); ++thisIter, ++otherIter) {
 		int res = (*thisIter)->compare(**otherIter);
 		if(res != 0) return res;
 	}
diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpConcatenation.cpp b/alib2data/src/regexp/unbounded/UnboundedRegExpConcatenation.cpp
index 5ff9fc8a44807e66a6715ec907eaf352e75dc775..17e8a1521d75b4c66f414c031d2f55430ed34364 100644
--- a/alib2data/src/regexp/unbounded/UnboundedRegExpConcatenation.cpp
+++ b/alib2data/src/regexp/unbounded/UnboundedRegExpConcatenation.cpp
@@ -115,7 +115,7 @@ int UnboundedRegExpConcatenation::compare(const UnboundedRegExpConcatenation& ot
 
 	auto thisIter = this->elements.begin();
 	auto otherIter = other.elements.begin();
-	for(; thisIter != this->elements.end(); thisIter++, otherIter++) {
+	for(; thisIter != this->elements.end(); ++thisIter, ++otherIter) {
 		int res = (*thisIter)->compare(**otherIter);
 		if(res != 0) return res;
 	}
diff --git a/alib2data/src/sax/FromXMLParserHelper.cpp b/alib2data/src/sax/FromXMLParserHelper.cpp
index c4708b0abb460d8a2b2519accada9f72c08fd2fd..67ed03621bd3a07bdc6568d7e77cea24204bbd45 100644
--- a/alib2data/src/sax/FromXMLParserHelper.cpp
+++ b/alib2data/src/sax/FromXMLParserHelper.cpp
@@ -20,7 +20,7 @@ bool FromXMLParserHelper::isTokenType(const std::deque<Token>::const_iterator& i
 
 void FromXMLParserHelper::popToken(std::deque<Token>::iterator& input, Token::TokenType type, const std::string& data) {
 	if (isToken(input, type, data)) {
-		input++;
+		++input;
 	} else {
 		throw ParserException(Token(data, type), *input);
 	}
@@ -29,7 +29,7 @@ void FromXMLParserHelper::popToken(std::deque<Token>::iterator& input, Token::To
 std::string FromXMLParserHelper::popTokenData(std::deque<Token>::iterator& input, Token::TokenType type) {
 	if(isTokenType(input, type)) {
 		std::string result = std::move(*input).moveData();
-		input++;
+		++input;
 		return result;
 	} else {
 		throw ParserException(Token("?", type), *input);
diff --git a/alib2data/src/tree/TreeToRawComposer.cpp b/alib2data/src/tree/TreeToRawComposer.cpp
index 433a5694dc43f96955f3cdf82983e843851fea12..56430c335f071547dd435b6ae4cf587c51dd6773 100644
--- a/alib2data/src/tree/TreeToRawComposer.cpp
+++ b/alib2data/src/tree/TreeToRawComposer.cpp
@@ -61,7 +61,7 @@ void TreeToRawComposer::composePrefixRankedNotation(std::deque<sax::Token>& out,
 		out.emplace_back(sax::Token((std::string) notation[root], sax::Token::TokenType::START_ELEMENT));
 
 		index += 1;
-		for(unsigned i = 0; i < size; i++) {
+		for(unsigned i = 0; i < size; ++i) {
 			composePrefixRankedNotation(out, index, notation);
 		}
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
index 7a799e69262b1d7739bdf8b78c1ab096290e0298..ec0e59971602da759aefd2a87f89e048503d2cad 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
@@ -106,7 +106,7 @@ void PrefixRankedBarPattern::arityChecksum(const std::vector<alphabet::RankedSym
 
 	if(arityChecksumTerminals != 0 || arityChecksumBars != 0 || arityChecksumTypes != 0) throw exception::AlibException("The string does not form a tree");
 
-	for(unsigned i = 0; i < data.size(); i++) {
+	for(unsigned i = 0; i < data.size(); ++i) {
 		if(data[i] == subtreeWildcard && ((i + 1) == data.size() || data[i + 1].getSymbol() != variablesBar)) throw exception::AlibException("Inconsystency of SubtreeWildcard and variablesBar");
 	}
 }
diff --git a/alib2data/src/tree/ranked/RankedNode.cpp b/alib2data/src/tree/ranked/RankedNode.cpp
index c97145e1cb0486f82b5ea45ef5e2a9aeb0085797..30acd5f3e7af8d86a015f27bc5128f091e352cb5 100644
--- a/alib2data/src/tree/ranked/RankedNode.cpp
+++ b/alib2data/src/tree/ranked/RankedNode.cpp
@@ -133,7 +133,7 @@ int RankedNode::compare(const RankedNode& other) const {
 
 	auto thisIter = this->children.begin();
 	auto otherIter = other.children.begin();
-	for(; thisIter != this->children.end(); thisIter++, otherIter++) {
+	for(; thisIter != this->children.end(); ++thisIter, ++otherIter) {
 		int res = (*thisIter)->compare(**otherIter);
 		if(res != 0) return res;
 	}
@@ -192,7 +192,7 @@ void RankedNode::nicePrint(std::ostream & os, const std::string & prefix, const
 	}
 	os << (std::string) symbol.getSymbol() << "(" << symbol.getRank().getData() << ")" << std::endl;
 
-	for (unsigned int i = 0; i < children.size(); i++) {
+	for (unsigned int i = 0; i < children.size(); ++i) {
 		os << nextPrefix << "|" << std::endl;
 		children[i] -> nicePrint(os, nextPrefix, i == children.size()-1);
 	}
diff --git a/alib2data/src/tree/unranked/UnrankedNode.cpp b/alib2data/src/tree/unranked/UnrankedNode.cpp
index 02f3779a47d3617c9cacde2fd50760c2baffd837..32a0ca32ad19052fa6760e55c02646e4a2f64eaf 100644
--- a/alib2data/src/tree/unranked/UnrankedNode.cpp
+++ b/alib2data/src/tree/unranked/UnrankedNode.cpp
@@ -136,7 +136,7 @@ int UnrankedNode::compare(const UnrankedNode& other) const {
 
 	auto thisIter = this->children.begin();
 	auto otherIter = other.children.begin();
-	for(; thisIter != this->children.end(); thisIter++, otherIter++) {
+	for(; thisIter != this->children.end(); ++thisIter, ++otherIter) {
 		int res = (*thisIter)->compare(**otherIter);
 		if(res != 0) return res;
 	}
@@ -195,7 +195,7 @@ void UnrankedNode::nicePrint(std::ostream & os, const std::string & prefix, cons
 	}
 	os << (std::string) symbol << std::endl;
 
-	for (unsigned int i = 0; i < children.size(); i++) {
+	for (unsigned int i = 0; i < children.size(); ++i) {
 		os << nextPrefix << "|" << std::endl;
 		children[i] -> nicePrint(os, nextPrefix, i == children.size()-1);
 	}
diff --git a/alib2std/src/extensions/list.hpp b/alib2std/src/extensions/list.hpp
index 389234eb555fc1ed3307e495d00d855400c3cb15..65fe68e730380aceee5e6125f79c59a29bc7370d 100644
--- a/alib2std/src/extensions/list.hpp
+++ b/alib2std/src/extensions/list.hpp
@@ -32,7 +32,7 @@ struct compare<list<T>> {
 		if(first.size() > second.size()) return 1;
 
 		compare<T> comp;
-		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); iterF++, iterS++) {
+		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); ++iterF, ++iterS) {
 			int res = comp(*iterF, *iterS);
 			if(res != 0) return res;
 		}
diff --git a/alib2std/src/extensions/map.hpp b/alib2std/src/extensions/map.hpp
index 9b1f6313a0eaf021df3aa2d1be4b09722fabb0da..61133203178faa22508d276cfa42bafc74c1b49f 100644
--- a/alib2std/src/extensions/map.hpp
+++ b/alib2std/src/extensions/map.hpp
@@ -34,7 +34,7 @@ struct compare<map<T, R>> {
 		if(first.size() > second.size()) return 1;
 
 		compare<std::pair<T, R>> comp;
-		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); iterF++, iterS++) {
+		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); ++iterF, ++iterS) {
 			int res = comp(*iterF, *iterS);
 			if(res != 0) return res;
 		}
diff --git a/alib2std/src/extensions/set.hpp b/alib2std/src/extensions/set.hpp
index 13ff62354ab8cf24e64485f7d5cc1317a26cb724..45d73931d03c88bd4cbfa06f10826822a47bed67 100644
--- a/alib2std/src/extensions/set.hpp
+++ b/alib2std/src/extensions/set.hpp
@@ -32,7 +32,7 @@ struct compare<set<T>> {
 		if(first.size() > second.size()) return 1;
 
 		compare<T> comp;
-		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); iterF++, iterS++) {
+		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); ++iterF, ++iterS) {
 			int res = comp(*iterF, *iterS);
 			if(res != 0) return res;
 		}
diff --git a/alib2std/src/extensions/unordered_map.hpp b/alib2std/src/extensions/unordered_map.hpp
index e05f46314f4c7775725a21e73cc94813673c88e0..2413ef446d416e6bd376bc4888dcd08726a45828 100644
--- a/alib2std/src/extensions/unordered_map.hpp
+++ b/alib2std/src/extensions/unordered_map.hpp
@@ -32,7 +32,7 @@ struct compare<unordered_map<T, R>> {
 		if(first.size() > second.size()) return 1;
 
 		compare<R> comp;
-		for(auto iter = first.begin(); iter != first.end(); iter++) {
+		for(auto iter = first.begin(); iter != first.end(); ++iter) {
 			auto search = second.find(iter->first);
 			if(search == second.end()) return -1;
 			int res = comp(iter->second, search->second);
diff --git a/alib2std/src/extensions/vector.hpp b/alib2std/src/extensions/vector.hpp
index 28397c3caa7080e7054454c4093e9cb277913cbc..ec101e339a4697cebd0b60b4c4ef79c13e5dd8a0 100644
--- a/alib2std/src/extensions/vector.hpp
+++ b/alib2std/src/extensions/vector.hpp
@@ -199,7 +199,7 @@ struct compare<vector<T>> {
 		if(first.size() > second.size()) return 1;
 
 		compare<T> comp;
-		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); iterF++, iterS++) {
+		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); ++iterF, ++iterS) {
 			int res = comp(*iterF, *iterS);
 			if(res != 0) return res;
 		}
@@ -214,7 +214,7 @@ struct compare<ptr_vector<T>> {
 		if(first.size() > second.size()) return 1;
 
 		compare<T> comp;
-		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); iterF++, iterS++) {
+		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); ++iterF, ++iterS) {
 			int res = comp(*iterF, *iterS);
 			if(res != 0) return res;
 		}