diff options
| author | Linus Jahn <lnj@kaidan.im> | 2021-07-06 22:01:33 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2021-07-23 21:40:02 +0200 |
| commit | 222575aaa68ba1696da84e7dd53708959f8b611b (patch) | |
| tree | ebcc27833bbbccb64c794a7daf1a8a669b5fe937 /src/client/QXmppClient.h | |
| parent | 9e59f99fd0cfef5e0fa528fe5f1c58c1ef3ad4b4 (diff) | |
| download | qxmpp-222575aaa68ba1696da84e7dd53708959f8b611b.tar.gz | |
QXmppClient: Add addNewExtension<T>()
Diffstat (limited to 'src/client/QXmppClient.h')
| -rw-r--r-- | src/client/QXmppClient.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/client/QXmppClient.h b/src/client/QXmppClient.h index 3337c5b1..a6502305 100644 --- a/src/client/QXmppClient.h +++ b/src/client/QXmppClient.h @@ -140,6 +140,14 @@ public: ~QXmppClient() override; bool addExtension(QXmppClientExtension *extension); + template<typename T, typename... Args> + T *addNewExtension(Args... args) + { + // it's impossible that addExtension() returns false: ext is a new object + auto *ext = new T(args...); + addExtension(ext); + return ext; + } bool insertExtension(int index, QXmppClientExtension *extension); bool removeExtension(QXmppClientExtension *extension); |
