diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2009-03-27 20:50:41 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2009-03-27 20:55:30 (GMT) |
commit | ff30a91eedd30c0e2e0b62ad50ade3d7d27651a8 (patch) | |
tree | 3a54cbbe2243407abe9f58e3d7f203cda83239f6 | |
parent | a4e8538e396efccf3f8193c7a5ba751d961f206d (diff) | |
download | Qt-ff30a91eedd30c0e2e0b62ad50ade3d7d27651a8.zip Qt-ff30a91eedd30c0e2e0b62ad50ade3d7d27651a8.tar.gz Qt-ff30a91eedd30c0e2e0b62ad50ade3d7d27651a8.tar.bz2 |
Add the parameter to the function call.
Apparently we have a problem with these default parameters. We have
basically:
template<typename T> void func(T * = 0);
template<> void func<Something>(Something *);
Now, according to GCC, I can't add "= 0" to the template
specialisation. However, MSVC 2008 isn't able to call the
specialisation without my extra 0 here. I've seen a similar issue
before in QSharedPointer.
I don't think this is a big deal because the error message output by
MSVC 2008 indicates this is likely a compiler bug:
qdbuspendingreply.h(98) : error C2440: 'default argument': cannot
convert from 'T1 *' to 'QVariant *'
where
[
T1=QVariant
]
-rw-r--r-- | src/dbus/qdbuspendingreply.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dbus/qdbuspendingreply.h b/src/dbus/qdbuspendingreply.h index 3880a7f..5ec9800 100644 --- a/src/dbus/qdbuspendingreply.h +++ b/src/dbus/qdbuspendingreply.h @@ -95,7 +95,7 @@ namespace QDBusPendingReplyTypes { enum { Total = Next::Total + 1 }; static inline void fillMetaTypes(int *p) { - *p = metaTypeFor<T1>(); + *p = metaTypeFor<T1>(0); Next::fillMetaTypes(++p); } }; @@ -171,7 +171,7 @@ public: Q_ASSERT_X(Index < count() && Index >= 0, "QDBusPendingReply::argumentAt", "Index out of bounds"); typedef typename Select<Index>::Type ResultType; - return qdbus_cast<ResultType>(argumentAt(Index)); + return qdbus_cast<ResultType>(argumentAt(Index), 0); } inline typename Select<0>::Type value() const |