summaryrefslogtreecommitdiff
path: root/indra/test/print.h
diff options
context:
space:
mode:
authorDave Houlton <euclid@lindenlab.com>2020-07-23 12:21:18 -0600
committerDave Houlton <euclid@lindenlab.com>2020-07-23 12:21:18 -0600
commit64a9ad0f5f52dac633a76e39335a7def2573b82e (patch)
treee47af1ff1bd1db52fd93c11d857b11387bacf01a /indra/test/print.h
parent05200cf827d9a6263adc4905bf41a4905bce2659 (diff)
parent72423372d6cd7f763a5567ad75752fa4e7131d60 (diff)
Merge branch 'master' v6.4.6 into DRTVWR-497
Diffstat (limited to 'indra/test/print.h')
-rw-r--r--indra/test/print.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/indra/test/print.h b/indra/test/print.h
new file mode 100644
index 0000000000..08e36caddf
--- /dev/null
+++ b/indra/test/print.h
@@ -0,0 +1,42 @@
+/**
+ * @file print.h
+ * @author Nat Goodspeed
+ * @date 2020-01-02
+ * @brief print() function for debugging
+ *
+ * $LicenseInfo:firstyear=2020&license=viewerlgpl$
+ * Copyright (c) 2020, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+#if ! defined(LL_PRINT_H)
+#define LL_PRINT_H
+
+#include <iostream>
+
+// print(..., NONL);
+// leaves the output dangling, suppressing the normally appended std::endl
+struct NONL_t {};
+#define NONL (NONL_t())
+
+// normal recursion end
+inline
+void print()
+{
+ std::cerr << std::endl;
+}
+
+// print(NONL) is a no-op
+inline
+void print(NONL_t)
+{
+}
+
+template <typename T, typename... ARGS>
+void print(T&& first, ARGS&&... rest)
+{
+ std::cerr << first;
+ print(std::forward<ARGS>(rest)...);
+}
+
+#endif /* ! defined(LL_PRINT_H) */