summaryrefslogtreecommitdiff
path: root/indra/test/print.h
diff options
context:
space:
mode:
authorDave Houlton <euclid@lindenlab.com>2020-07-21 20:11:56 +0000
committerDave Houlton <euclid@lindenlab.com>2020-07-21 20:11:56 +0000
commit8153e7d63923a0022ffc1d6f526d4be57d34ba3d (patch)
tree596d38d591177ccc2ffef695b6f79437c5efce97 /indra/test/print.h
parent6362aa300766484909cdfc8884edf3e6744fc727 (diff)
parent19d063952c4706d4344f207775aa5dfdff8802fd (diff)
Merged in merge-6.4.6 (pull request #207)
Merge master 6.4.6 into DRTVWR-510 (VS2017 update)
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) */