summaryrefslogtreecommitdiff
path: root/indra/test/print.h
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2020-07-21 11:54:11 +0300
committerAndrey Lihatskiy <alihatskiy@productengine.com>2020-07-21 11:54:11 +0300
commitae48c7c8b353d44287db06c3ad52b9ccfcf1b4e4 (patch)
treed6e97f71afbc7e31e9e16f929cb6a6070318dffc /indra/test/print.h
parentad3f7252229e476f6e85f7b5d274aa6ee362fce1 (diff)
parent72423372d6cd7f763a5567ad75752fa4e7131d60 (diff)
Merge branch 'master' into DRTVWR-513-maint
# Conflicts: # indra/llcommon/llerror.cpp # indra/newview/llappviewerwin32.cpp # indra/newview/llimprocessing.cpp # indra/newview/llviewerjoystick.cpp
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) */