diff --git a/alib2algo/src/arbology/indexing/CompressedBitParallelIndexConstruction.h b/alib2algo/src/arbology/indexing/CompressedBitParallelIndexConstruction.h
index 560822518375092cb40231d3a4fedc950241a83f..cb96d297723d99d7d03f551376d8e15a8ed5ea6a 100644
--- a/alib2algo/src/arbology/indexing/CompressedBitParallelIndexConstruction.h
+++ b/alib2algo/src/arbology/indexing/CompressedBitParallelIndexConstruction.h
@@ -60,7 +60,7 @@ indexes::arbology::CompressedBitParallelTreeIndex < SymbolType, RankType > Compr
 	for ( unsigned i = 0; i < w.getContent ( ).size ( ); ++i )
 		res [ w.getContent ( ) [ i ] ] [ i ] = true;
 
-	return indexes::arbology::CompressedBitParallelTreeIndex < SymbolType, RankType > ( w.getAlphabet ( ), res, tree::properties::SubtreeJumpTable::compute ( w ) );
+	return indexes::arbology::CompressedBitParallelTreeIndex < SymbolType, RankType > ( w.getAlphabet ( ), std::move ( res ), tree::properties::SubtreeJumpTable::compute ( w ) );
 }
 
 } /* namespace indexing */
diff --git a/alib2algo/src/arbology/indexing/NonlinearCompressedBitParallelIndexConstruction.h b/alib2algo/src/arbology/indexing/NonlinearCompressedBitParallelIndexConstruction.h
index 0ac504d5b8b5df8ed05439a90baad11af2c0a0b2..1ccf335c47b95f88f0e755dd2ca4c85c6624711a 100644
--- a/alib2algo/src/arbology/indexing/NonlinearCompressedBitParallelIndexConstruction.h
+++ b/alib2algo/src/arbology/indexing/NonlinearCompressedBitParallelIndexConstruction.h
@@ -50,7 +50,7 @@ indexes::arbology::NonlinearCompressedBitParallelTreeIndex < SymbolType, RankTyp
 	for ( const common::ranked_symbol < unsigned, RankType > & symbol : content )
 		repeats.push_back ( symbol.getSymbol ( ) );
 
-	return indexes::arbology::NonlinearCompressedBitParallelTreeIndex < SymbolType, RankType > ( w.getAlphabet ( ), res, tree::properties::SubtreeJumpTable::compute ( w ), repeats );
+	return indexes::arbology::NonlinearCompressedBitParallelTreeIndex < SymbolType, RankType > ( w.getAlphabet ( ), std::move ( res ), tree::properties::SubtreeJumpTable::compute ( w ), std::move ( repeats ) );
 }
 
 } /* namespace indexing */
diff --git a/alib2algo/src/arbology/indexing/NonlinearFullAndLinearIndexConstruction.h b/alib2algo/src/arbology/indexing/NonlinearFullAndLinearIndexConstruction.h
index bae064d733d4c9d148928efaef6b7365c862b2b8..f5e68d9e113f5465cb3208dede2abcbc7d26ddff 100644
--- a/alib2algo/src/arbology/indexing/NonlinearFullAndLinearIndexConstruction.h
+++ b/alib2algo/src/arbology/indexing/NonlinearFullAndLinearIndexConstruction.h
@@ -56,7 +56,7 @@ indexes::arbology::NonlinearFullAndLinearIndex < SymbolType, RankType > Nonlinea
 	for ( const common::ranked_symbol < unsigned, RankType > & symbol : content )
 		repeats.push_back ( symbol.getSymbol ( ) );
 
-	return indexes::arbology::NonlinearFullAndLinearIndex < SymbolType, RankType > ( stringology::indexing::PositionHeapNaive::construct ( string::LinearString < common::ranked_symbol < SymbolType, RankType > > ( w ) ), tree::properties::SubtreeJumpTable::compute ( w ), repeats );
+	return indexes::arbology::NonlinearFullAndLinearIndex < SymbolType, RankType > ( stringology::indexing::PositionHeapNaive::construct ( string::LinearString < common::ranked_symbol < SymbolType, RankType > > ( w ) ), tree::properties::SubtreeJumpTable::compute ( w ), std::move ( repeats ) );
 }
 
 } /* namespace indexing */
diff --git a/alib2algo/src/stringology/indexing/BitParallelIndexConstruction.h b/alib2algo/src/stringology/indexing/BitParallelIndexConstruction.h
index 99c69bcacd84bc8be7ee18b3b095fe877af2543f..f5a583f4a7db3783aaed597d3cb40a664f24156c 100644
--- a/alib2algo/src/stringology/indexing/BitParallelIndexConstruction.h
+++ b/alib2algo/src/stringology/indexing/BitParallelIndexConstruction.h
@@ -42,7 +42,7 @@ indexes::stringology::BitParallelIndex < SymbolType > BitParallelIndexConstructi
 	for ( unsigned i = 0; i < w.getContent ( ).size ( ); ++i )
 		res [ w.getContent ( ) [ i ] ] [ i ] = true;
 
-	return indexes::stringology::BitParallelIndex < SymbolType > ( w.getAlphabet ( ), res );
+	return indexes::stringology::BitParallelIndex < SymbolType > ( w.getAlphabet ( ), std::move ( res ) );
 }
 
 } /* namespace indexing */
diff --git a/alib2algo/src/stringology/indexing/CompressedBitParallelIndexConstruction.h b/alib2algo/src/stringology/indexing/CompressedBitParallelIndexConstruction.h
index 3ee436e59093a6c58531a11742910e12b42852af..32b35757d7c27a119acb4d740bab951d9ca9c2c6 100644
--- a/alib2algo/src/stringology/indexing/CompressedBitParallelIndexConstruction.h
+++ b/alib2algo/src/stringology/indexing/CompressedBitParallelIndexConstruction.h
@@ -42,7 +42,7 @@ indexes::stringology::CompressedBitParallelIndex < SymbolType > CompressedBitPar
 	for ( unsigned i = 0; i < w.getContent ( ).size ( ); ++i )
 		res [ w.getContent ( ) [ i ] ] [ i ] = true;
 
-	return indexes::stringology::CompressedBitParallelIndex < SymbolType > ( w.getAlphabet ( ), res );
+	return indexes::stringology::CompressedBitParallelIndex < SymbolType > ( w.getAlphabet ( ), std::move ( res ) );
 }
 
 } /* namespace indexing */
diff --git a/alib2algo/src/stringology/indexing/PositionHeapNaive.h b/alib2algo/src/stringology/indexing/PositionHeapNaive.h
index 520d723e06d5d4f0518905bf6fdb9fc00f20e3ff..2b98cd6cc4ac4f62d6e7a998a53ec11e6a0558f4 100644
--- a/alib2algo/src/stringology/indexing/PositionHeapNaive.h
+++ b/alib2algo/src/stringology/indexing/PositionHeapNaive.h
@@ -53,7 +53,7 @@ indexes::stringology::PositionHeap < SymbolType > PositionHeapNaive::construct (
 		n = & n->getChildren ( ).insert ( std::make_pair ( w.getContent ( )[k], ext::trie < SymbolType, unsigned > ( node ) ) ).first->second;
 	}
 
-	return indexes::stringology::PositionHeap < SymbolType > ( w.getAlphabet ( ), trie, w.getContent ( ) );
+	return indexes::stringology::PositionHeap < SymbolType > ( w.getAlphabet ( ), std::move ( trie ), w.getContent ( ) );
 }
 
 } /* namespace indexing */
diff --git a/alib2algo/src/stringology/indexing/SuffixArrayNaive.h b/alib2algo/src/stringology/indexing/SuffixArrayNaive.h
index 8ab969e79bbb543a8882b5bc780374e75f1f3de6..977d0081833bfa695dfcc4139d591a4310ec6bfc 100644
--- a/alib2algo/src/stringology/indexing/SuffixArrayNaive.h
+++ b/alib2algo/src/stringology/indexing/SuffixArrayNaive.h
@@ -53,7 +53,7 @@ indexes::stringology::SuffixArray < SymbolType > SuffixArrayNaive::construct ( c
 			return first > second;
 	} );
 
-	return indexes::stringology::SuffixArray < SymbolType > ( w.getAlphabet ( ), data, w.getContent ( ) );
+	return indexes::stringology::SuffixArray < SymbolType > ( w.getAlphabet ( ), std::move ( data ), w.getContent ( ) );
 }
 
 } /* namespace indexing */
diff --git a/alib2algo/src/stringology/indexing/SuffixTrieNaive.h b/alib2algo/src/stringology/indexing/SuffixTrieNaive.h
index 36adf70ea77d4ddae7610f4a7220cb1e70150a14..463293a9d0b97f9226aaf7107ab92972b07bf83b 100644
--- a/alib2algo/src/stringology/indexing/SuffixTrieNaive.h
+++ b/alib2algo/src/stringology/indexing/SuffixTrieNaive.h
@@ -51,7 +51,7 @@ indexes::stringology::SuffixTrie < SymbolType > SuffixTrieNaive::construct ( con
 		}
 	}
 
-	return indexes::stringology::SuffixTrie < SymbolType > ( w.getAlphabet ( ), trie );
+	return indexes::stringology::SuffixTrie < SymbolType > ( w.getAlphabet ( ), std::move ( trie ) );
 }
 
 } /* namespace indexing */
diff --git a/alib2algo/src/tree/properties/ExactSubtreeRepeats.h b/alib2algo/src/tree/properties/ExactSubtreeRepeats.h
index 0fcd939580d40986ba3fa58f0fd341c6228f49a8..138f95d8f7d392be9edab76445bad778e7960420 100644
--- a/alib2algo/src/tree/properties/ExactSubtreeRepeats.h
+++ b/alib2algo/src/tree/properties/ExactSubtreeRepeats.h
@@ -507,7 +507,7 @@ tree::PostfixRankedTree < unsigned, RankType > ExactSubtreeRepeats::repeats ( co
 
 	repeatsPostfixRanked ( tree.getContent ( ), res );
 
-	return tree::PostfixRankedTree < unsigned, RankType > ( res );
+	return tree::PostfixRankedTree < unsigned, RankType > ( std::move ( res ) );
 }
 
 } /* namespace properties */
diff --git a/alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.h b/alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.h
index f6e43f88a97771174985b7c8757b847db9a569db..6a1d2e17ffbaf60357a1b53dfa73f84d1fbcfa6b 100644
--- a/alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.h
+++ b/alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.h
@@ -110,7 +110,7 @@ tree::PrefixRankedTree < unsigned, RankType > ExactSubtreeRepeatsNaive::repeats
 	ext::map < std::pair < common::ranked_symbol < SymbolType, RankType >, ext::vector < common::ranked_symbol < unsigned, RankType > > >, unsigned > data;
 
 	repeatsPrefixRanked ( tree.getContent ( ), res, data, minId, index );
-	return tree::PrefixRankedTree < unsigned, RankType > ( res );
+	return tree::PrefixRankedTree < unsigned, RankType > ( std::move ( res ) );
 }
 
 template < class SymbolType, class RankType >
@@ -143,7 +143,7 @@ tree::PostfixRankedTree < unsigned, RankType > ExactSubtreeRepeatsNaive::repeats
 	ext::map < std::pair < common::ranked_symbol < SymbolType, RankType >, ext::vector < common::ranked_symbol < unsigned, RankType > > >, unsigned > data;
 
 	repeatsPostfixRanked ( tree.getContent ( ), res, data, minId, index );
-	return tree::PostfixRankedTree < unsigned, RankType > ( res );
+	return tree::PostfixRankedTree < unsigned, RankType > ( std::move ( res ) );
 }
 
 
@@ -184,7 +184,7 @@ tree::PrefixRankedBarTree < unsigned, RankType > ExactSubtreeRepeatsNaive::repea
 	for ( const common::ranked_symbol < SymbolType, RankType > & bar : tree.getBars ( ) )
 		bars.insert ( common::ranked_symbol < unsigned, RankType > ( barId, bar.getRank ( ) ) );
 
-	return tree::PrefixRankedBarTree < unsigned, RankType > ( bars, res );
+	return tree::PrefixRankedBarTree < unsigned, RankType > ( std::move ( bars ), std::move ( res ) );
 }
 
 } /* namespace properties */