diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2020-02-19 11:29:37 +0100 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2020-02-22 14:16:59 +0100 |
commit | 658b9697f9d85d4ed294810b4f60bafdbdd8e247 (patch) | |
tree | d836620dc3d444b0ae6877a278bb78af814d64c6 /src/corelib/io/qdebug.h | |
parent | 8471a422e3b4514904ce904aa5aadfab679b4190 (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.h | 18 |
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) |