From d841790e5cd83f86537913e95f8673ac2f50690b Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Mon, 25 May 2020 18:19:09 +0200
Subject: [PATCH] fix tuple vs pair inconsistency

---
 .../src/abstraction/RawAbstraction.hpp        |  4 ++--
 .../src/registry/AlgorithmRegistry.hpp        |  2 +-
 .../src/registry/AlgorithmRegistryInfo.hpp    | 22 +++++++++----------
 alib2cli/src/builtin/Move.cpp                 |  2 +-
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/alib2abstraction/src/abstraction/RawAbstraction.hpp b/alib2abstraction/src/abstraction/RawAbstraction.hpp
index 69799a6f55..20aa53efa2 100644
--- a/alib2abstraction/src/abstraction/RawAbstraction.hpp
+++ b/alib2abstraction/src/abstraction/RawAbstraction.hpp
@@ -14,12 +14,12 @@
 namespace abstraction {
 
 class RawAbstraction : virtual public OperationAbstraction {
-	ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > m_paramSpecs;
+	ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > m_paramSpecs; //FIXME is it needed?
 	std::function < std::shared_ptr < abstraction::Value > ( std::vector < std::shared_ptr < abstraction::Value > > ) > m_callback;
 	ext::vector < std::shared_ptr < abstraction::Value > > m_params;
 
 public:
-	RawAbstraction ( ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > paramSpecs, std::function < std::shared_ptr < abstraction::Value > ( std::vector < std::shared_ptr < abstraction::Value > > ) > callback ) : m_paramSpecs ( paramSpecs ), m_callback ( std::move ( callback ) ), m_params ( m_paramSpecs.size ( ) ) {
+	RawAbstraction ( ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > paramSpecs, std::function < std::shared_ptr < abstraction::Value > ( std::vector < std::shared_ptr < abstraction::Value > > ) > callback ) : m_paramSpecs ( paramSpecs ), m_callback ( std::move ( callback ) ), m_params ( m_paramSpecs.size ( ) ) {
 	}
 
 private:
diff --git a/alib2abstraction/src/registry/AlgorithmRegistry.hpp b/alib2abstraction/src/registry/AlgorithmRegistry.hpp
index 5673f6393d..60cca08094 100644
--- a/alib2abstraction/src/registry/AlgorithmRegistry.hpp
+++ b/alib2abstraction/src/registry/AlgorithmRegistry.hpp
@@ -161,7 +161,7 @@ public:
 	}
 
 	template < class Algo >
-	static void unregisterRaw ( ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > parameterSpecs ) {
+	static void unregisterRaw ( ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > parameterSpecs ) {
 		std::string algorithm = ext::to_string < Algo > ( );
 		ext::vector < std::string > templateParams = ext::get_template_info ( algorithm );
 		algorithm = ext::erase_template_info ( algorithm );
diff --git a/alib2abstraction/src/registry/AlgorithmRegistryInfo.hpp b/alib2abstraction/src/registry/AlgorithmRegistryInfo.hpp
index a03f9b5d8c..f541f31125 100644
--- a/alib2abstraction/src/registry/AlgorithmRegistryInfo.hpp
+++ b/alib2abstraction/src/registry/AlgorithmRegistryInfo.hpp
@@ -21,12 +21,12 @@ namespace abstraction {
 class AlgorithmBaseInfo {
 	AlgorithmCategories::AlgorithmCategory m_category;
 
-	ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > m_params;
+	ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > m_params;
 
 protected:
 	template < class ... ParamTypes >
-	static ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > convertTypes ( ) {
-		ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params { convertType < ParamTypes > ( ) ... };
+	static ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > convertTypes ( ) {
+		ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params { convertType < ParamTypes > ( ) ... };
 
 		return params;
 	}
@@ -37,14 +37,14 @@ protected:
 	}
 
 public:
-	AlgorithmBaseInfo ( AlgorithmCategories::AlgorithmCategory category, ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params ) : m_category ( category ), m_params ( std::move ( params ) ) {
+	AlgorithmBaseInfo ( AlgorithmCategories::AlgorithmCategory category, ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params ) : m_category ( category ), m_params ( std::move ( params ) ) {
 	}
 
 	AlgorithmCategories::AlgorithmCategory getCategory ( ) const {
 		return m_category;
 	}
 
-	const ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > & getParams ( ) const {
+	const ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > & getParams ( ) const {
 		return m_params;
 	}
 
@@ -52,7 +52,7 @@ public:
 	static AlgorithmBaseInfo methodEntryInfo ( ) {
 		AlgorithmCategories::AlgorithmCategory category = AlgorithmCategories::AlgorithmCategory::DEFAULT;
 
-		ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params = convertTypes < ParamTypes ... > ( );
+		ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params = convertTypes < ParamTypes ... > ( );
 		params.insert ( params.begin ( ), convertType < ObjectType & > ( ) );
 
 		return AlgorithmBaseInfo ( category, std::move ( params ) );
@@ -60,7 +60,7 @@ public:
 
 	template < class ... ParamTypes >
 	static AlgorithmBaseInfo algorithmEntryInfo ( AlgorithmCategories::AlgorithmCategory category ) {
-		ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params = convertTypes < ParamTypes ... > ( );
+		ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params = convertTypes < ParamTypes ... > ( );
 
 		return AlgorithmBaseInfo ( category, std::move ( params ) );
 	}
@@ -69,12 +69,12 @@ public:
 	static AlgorithmBaseInfo wrapperEntryInfo ( ) {
 		AlgorithmCategories::AlgorithmCategory category = AlgorithmCategories::AlgorithmCategory::DEFAULT;
 
-		ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params = convertTypes < ParamTypes ... > ( );
+		ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params = convertTypes < ParamTypes ... > ( );
 
 		return AlgorithmBaseInfo ( category, std::move ( params ) );
 	}
 
-	static AlgorithmBaseInfo rawEntryInfo ( ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > paramSpec ) {
+	static AlgorithmBaseInfo rawEntryInfo ( ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > paramSpec ) {
 		AlgorithmCategories::AlgorithmCategory category = AlgorithmCategories::AlgorithmCategory::DEFAULT;
 
 		return AlgorithmBaseInfo ( category, std::move ( paramSpec ) );
@@ -84,7 +84,7 @@ public:
 	static AlgorithmBaseInfo operatorEntryInfo ( ) {
 		AlgorithmCategories::AlgorithmCategory category = AlgorithmCategories::AlgorithmCategory::DEFAULT;
 
-		ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params = convertTypes < ParamTypes ... > ( );
+		ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > params = convertTypes < ParamTypes ... > ( );
 
 		return AlgorithmBaseInfo ( category, std::move ( params ) );
 	}
@@ -140,7 +140,7 @@ public:
 
 	static AlgorithmFullInfo rawEntryInfo ( ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > result, ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet, std::string > > paramSpecs ) {
 		ext::vector < std::string > parameterNames;
-		ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > parameterSpecs;
+		ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > parameterSpecs;
 		for ( ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet, std::string > & paramSpec : paramSpecs ) {
 			parameterNames.push_back ( std::move ( std::get < 2 > ( paramSpec ) ) );
 			parameterSpecs.push_back ( ext::make_pair ( std::move ( std::get < 0 > ( paramSpec ) ), std::get < 1 > ( paramSpec ) ) );
diff --git a/alib2cli/src/builtin/Move.cpp b/alib2cli/src/builtin/Move.cpp
index 3a743ded61..56f249f1e7 100644
--- a/alib2cli/src/builtin/Move.cpp
+++ b/alib2cli/src/builtin/Move.cpp
@@ -14,7 +14,7 @@ namespace {
 auto move = ext::Register < void > ( [ ] ( ) {
 		abstraction::AlgorithmRegistry::registerRaw < cli::builtin::Move > ( cli::builtin::Move::move, ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > { "auto", abstraction::TypeQualifiers::TypeQualifierSet::RREF }, ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet, std::string > > { { "auto", abstraction::TypeQualifiers::TypeQualifierSet::LREF, "arg0" } } );
 	}, [ ] ( ) {
-		abstraction::AlgorithmRegistry::unregisterRaw < cli::builtin::Move > ( ext::vector < ext::tuple < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > { { "auto", abstraction::TypeQualifiers::TypeQualifierSet::LREF } } );
+		abstraction::AlgorithmRegistry::unregisterRaw < cli::builtin::Move > ( ext::vector < ext::pair < std::string, abstraction::TypeQualifiers::TypeQualifierSet > > { { "auto", abstraction::TypeQualifiers::TypeQualifierSet::LREF } } );
 	} );
 
 } /* namespace */
-- 
GitLab