From 7cf72fd16e8ac73ac764f7380c81a6962a77640a Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Fri, 11 Jul 2014 22:26:55 +0000 Subject: [PATCH] base: add a simple tuple implementation. --- src/Makefile.am | 2 +- src/lol/base/all.h | 1 + src/lol/base/tuple.h | 89 +++++++++++++++++++++++++++++++++++++ src/lolcore.vcxproj | 1 + src/lolcore.vcxproj.filters | 3 ++ tools/vimlol/vimlol.vim | 2 +- 6 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 src/lol/base/tuple.h diff --git a/src/Makefile.am b/src/Makefile.am index 3bbe08e6..a759b435 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -36,7 +36,7 @@ liblolcore_headers = \ lol/unit.h \ \ lol/base/all.h \ - lol/base/features.h lol/base/array.h lol/base/types.h lol/base/array.h \ + lol/base/features.h lol/base/tuple.h lol/base/types.h lol/base/array.h \ lol/base/assert.h lol/base/string.h lol/base/hash.h lol/base/map.h \ lol/base/enum.h lol/base/log.h \ \ diff --git a/src/lol/base/all.h b/src/lol/base/all.h index 029b37cd..f9391c47 100644 --- a/src/lol/base/all.h +++ b/src/lol/base/all.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/src/lol/base/tuple.h b/src/lol/base/tuple.h new file mode 100644 index 00000000..3b3a67c1 --- /dev/null +++ b/src/lol/base/tuple.h @@ -0,0 +1,89 @@ +// +// Lol Engine +// +// Copyright: (c) 2010-2014 Sam Hocevar +// (c) 2013-2014 Benjamin "Touky" Huet +// This program is free software; you can redistribute it and/or +// modify it under the terms of the Do What The Fuck You Want To +// Public License, Version 2, as published by Sam Hocevar. See +// http://www.wtfpl.net/ for more details. +// + +// +// The tuple class +// --------------- +// A very simple tuple class. +// + +#if !defined __LOL_BASE_TUPLE_H__ +#define __LOL_BASE_TUPLE_H__ + +#include + +namespace lol +{ + +template +class tuple +{ +public: + T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; +}; + +template +class tuple +{ +public: + T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; +}; + +template +class tuple +{ +public: + T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; +}; + +template +class tuple +{ +public: + T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; +}; + +template +class tuple +{ +public: + T1 m1; T2 m2; T3 m3; T4 m4; +}; + +template +class tuple +{ +public: + T1 m1; T2 m2; T3 m3; +}; + +template +class tuple +{ +public: + T1 m1; T2 m2; +}; + +template +class tuple +{ +public: + T1 m1; +}; + +} /* namespace lol */ + +#endif // __LOL_BASE_TUPLE_H__ + diff --git a/src/lolcore.vcxproj b/src/lolcore.vcxproj index 485e6133..7432ee57 100644 --- a/src/lolcore.vcxproj +++ b/src/lolcore.vcxproj @@ -300,6 +300,7 @@ + diff --git a/src/lolcore.vcxproj.filters b/src/lolcore.vcxproj.filters index 3b8af4ce..e1f4feb7 100644 --- a/src/lolcore.vcxproj.filters +++ b/src/lolcore.vcxproj.filters @@ -633,6 +633,9 @@ lol\base + + lol\base + lol\base diff --git a/tools/vimlol/vimlol.vim b/tools/vimlol/vimlol.vim index 61c365ac..547114c7 100644 --- a/tools/vimlol/vimlol.vim +++ b/tools/vimlol/vimlol.vim @@ -18,7 +18,7 @@ au Syntax cpp " Some custom container types au Syntax cpp \ syn keyword cType - \ array array2d array3d hash map + \ tuple array array2d array3d hash map " GLSL types and the Lol Engine extensions au Syntax cpp