*
* libmcachedd client library.
*
- * Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ * Copyright (C) 2011-2013 Data Differential, http://datadifferential.com/
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
#pragma once
-#ifdef _WIN32
-# include <malloc.h>
+#ifdef __cplusplus
+# include <cassert>
#else
-# include <alloca.h>
-#endif
-
-#include <cstdarg>
+# include <assert.h>
+#endif // __cplusplus
#ifdef NDEBUG
-#define assert_msg(__expr, __mesg) (void)(__expr); (void)(__mesg);
-#define assert_vmsg(__expr, __mesg, ...) (void)(__expr); (void)(__mesg);
+# define assert_msg(__expr, __mesg) (void)(__expr); (void)(__mesg);
+# define assert_vmsg(__expr, __mesg, ...) (void)(__expr); (void)(__mesg);
+#else
+
+# ifdef _WIN32
+# include <malloc.h>
+# else
+# include <alloca.h>
+# endif
+
+#ifdef __cplusplus
+# include <cstdarg>
+# include <cstdio>
#else
+# include <stdarg.h>
+# include <stdio.h>
+#endif
-#define assert_msg(__expr, __mesg) \
+# include <libmemcached/backtrace.hpp>
+
+# define assert_msg(__expr, __mesg) \
do \
{ \
if (not (__expr)) \
} \
} while (0)
-#define assert_vmsg(__expr, __mesg, ...) \
+# define assert_vmsg(__expr, __mesg, ...) \
do \
{ \
if (not (__expr)) \
} \
} while (0)
-#endif
+#endif // NDEBUG