summaryrefslogtreecommitdiff
path: root/Simulator/include/database/QueryResult.h
blob: c1534be355dd49cd9220c70255a3cd7535e5ba4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once
#include <tuple>

namespace Database
{
	template<class ...ReturnTypes>
	class QueryResult
	{
	public:
		explicit QueryResult(ReturnTypes... returnValues) : values(returnValues...) {}
		explicit QueryResult(std::tuple<ReturnTypes...> returnValues) : values(returnValues) {}

		/*
			Returns the item at the given index. 
			ReturnType must be the same as the type of the item at position Index in the tuple.
		*/
		template<class ReturnType, int Index>
		ReturnType get()
		{
			return std::get<Index>(values);
		}
		
		std::tuple<ReturnTypes...> values;
	};
}