changeset 15072:0f1869a54166 draft

(svn r19698) -Add: macros to get the size/length of a variable within a class
author rubidium <rubidium@openttd.org>
date Fri, 23 Apr 2010 14:56:14 +0000
parents a5fc4d4430bf
children 63aa13fe4f2c
files src/stdafx.h
diffstat 1 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/stdafx.h
+++ b/src/stdafx.h
@@ -371,6 +371,22 @@
 	#define offsetof(s, m) cpp_offsetof(s, m)
 #endif /* offsetof */
 
+/**
+ * Gets the size of a variable within a class.
+ * @param base     The class the variable is in.
+ * @param variable The variable to get the size of.
+ * @return the size of the variable
+ */
+#define cpp_sizeof(base, variable) (sizeof(((base*)8)->variable))
+
+/**
+ * Gets the length of an array variable within a class.
+ * @param base     The class the variable is in.
+ * @param variable The array variable to get the size of.
+ * @return the length of the array
+ */
+#define cpp_lengthof(base, variable) (cpp_sizeof(base, variable) / cpp_sizeof(base, variable[0]))
+
 
 /* take care of some name clashes on MacOS */
 #if defined(__APPLE__)