summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qdebug.h
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2020-02-19 11:29:37 +0100
committerMitch Curtis <mitch.curtis@qt.io>2020-02-22 14:16:59 +0100
commit658b9697f9d85d4ed294810b4f60bafdbdd8e247 (patch)
treed836620dc3d444b0ae6877a278bb78af814d64c6 /src/corelib/io/qdebug.h
parent8471a422e3b4514904ce904aa5aadfab679b4190 (diff)
Add QDebug::toString()
This template function streams the given object into a QDebug instance that operates on a string, and then returns that string. This function is useful for cases where you need the textual representation of an object for debugging, but cannot use operator<<. A good example of this is when writing tests where you want to provide a useful failure message involving details about an object, but must provide it in a string to e.g. QVERIFY2. [ChangeLog][QtCore][QDebug] Added static template toString() function, which streams the given object into a QDebug instance that operates on a string, and then returns that string. Fixes: QTBUG-82309 Change-Id: I8411394e899dedad19cec788d779a4515d52ba11 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/corelib/io/qdebug.h')
-rw-r--r--src/corelib/io/qdebug.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h
index 2314b36bda..9a6abc1994 100644
--- a/src/corelib/io/qdebug.h
+++ b/src/corelib/io/qdebug.h
@@ -173,6 +173,24 @@ public:
inline QDebug &operator<<(QTextStreamManipulator m)
{ stream->ts << m; return *this; }
+
+ template <typename T>
+ static QString toString(const T &object)
+ {
+ QString buffer;
+ QDebug stream(&buffer);
+ stream << object;
+ return buffer;
+ }
+
+ template <typename T>
+ static QString toString(const T *object)
+ {
+ QString buffer;
+ QDebug stream(&buffer);
+ stream << object;
+ return buffer;
+ }
};
Q_DECLARE_SHARED(QDebug)