summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/struct.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/engine/struct.h b/engine/struct.h
new file mode 100644
index 0000000..d08e66d
--- /dev/null
+++ b/engine/struct.h
@@ -0,0 +1,53 @@
+#ifndef STRUCT_H
+#define STRUCT_H
+
+template<class A = void, class B = void, class C = void, class D = void, class E = void, class F = void>
+struct Struct {
+ A a;
+ B b;
+ C c;
+ D d;
+ E e;
+ F f;
+};
+
+template<class A, class B, class C, class D, class E>
+struct Struct<A, B, C, D, E, void> {
+ A a;
+ B b;
+ C c;
+ D d;
+ E e;
+};
+
+template<class A, class B, class C, class D>
+struct Struct<A, B, C, D, void, void> {
+ A a;
+ B b;
+ C c;
+ D d;
+};
+
+template<class A, class B, class C>
+struct Struct<A, B, C, void, void, void> {
+ A a;
+ B b;
+ C c;
+};
+
+template<class A, class B>
+struct Struct<A, B, void, void, void, void> {
+ A a;
+ B b;
+};
+
+template<class A>
+struct Struct<A, void, void, void, void, void> {
+ A a;
+};
+
+template<>
+struct Struct<void, void, void, void, void, void> {
+};
+
+#endif