summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorest31 <MTest31@outlook.com>2015-10-31 03:06:36 +0100
committerest31 <MTest31@outlook.com>2015-11-02 04:57:55 +0100
commiteabfe091b5ecfa6e53b70e08faf76df7f0684529 (patch)
treea92a825d8b3234012d3a5b3603b3450ed32ca23e /src/util
parent8f49358153637bb87f492e558a13cf9f23046e64 (diff)
downloadminetest-eabfe091b5ecfa6e53b70e08faf76df7f0684529.tar.gz
minetest-eabfe091b5ecfa6e53b70e08faf76df7f0684529.tar.bz2
minetest-eabfe091b5ecfa6e53b70e08faf76df7f0684529.zip
Rename and move basicmacros.h to util/basic_macros.h
Diffstat (limited to 'src/util')
-rw-r--r--src/util/basic_macros.h46
-rw-r--r--src/util/numeric.h2
2 files changed, 47 insertions, 1 deletions
diff --git a/src/util/basic_macros.h b/src/util/basic_macros.h
new file mode 100644
index 000000000..2a30a31d2
--- /dev/null
+++ b/src/util/basic_macros.h
@@ -0,0 +1,46 @@
+/*
+Minetest
+Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef BASICMACROS_HEADER
+#define BASICMACROS_HEADER
+
+#include <algorithm>
+
+#define ARRLEN(x) (sizeof(x) / sizeof((x)[0]))
+
+#define MYMIN(a, b) ((a) < (b) ? (a) : (b))
+
+#define MYMAX(a, b) ((a) > (b) ? (a) : (b))
+
+#define CONTAINS(c, v) (std::find((c).begin(), (c).end(), (v)) != (c).end())
+
+// To disable copy constructors and assignment operations for some class
+// 'Foobar', add the macro DISABLE_CLASS_COPY(Foobar) as a private member.
+// Note this also disables copying for any classes derived from 'Foobar' as well
+// as classes having a 'Foobar' member.
+#define DISABLE_CLASS_COPY(C) \
+ C(const C &); \
+ C &operator=(const C &)
+
+// Fail compilation if condition expr is not met.
+// Note that 'msg' must follow the format of a valid identifier, e.g.
+// STATIC_ASSERT(sizeof(foobar_t) == 40), foobar_t_is_wrong_size);
+#define STATIC_ASSERT(expr, msg) typedef char msg[!!(expr) * 2 - 1]
+
+#endif
diff --git a/src/util/numeric.h b/src/util/numeric.h
index 643c44440..e742ab24a 100644
--- a/src/util/numeric.h
+++ b/src/util/numeric.h
@@ -20,7 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#ifndef UTIL_NUMERIC_HEADER
#define UTIL_NUMERIC_HEADER
-#include "../basicmacros.h"
+#include "basic_macros.h"
#include "../irrlichttypes.h"
#include "../irr_v2d.h"
#include "../irr_v3d.h"