|
| 1 | +diff --git a/include/dbus-c++/types.h b/include/dbus-c++/types.h |
| 2 | +index 044e72b..7b3108f 100644 |
| 3 | +--- a/include/dbus-c++/types.h |
| 4 | ++++ b/include/dbus-c++/types.h |
| 5 | +@@ -89,13 +89,7 @@ public: |
| 6 | + } |
| 7 | + |
| 8 | + template <typename T> |
| 9 | +- operator T() const |
| 10 | +- { |
| 11 | +- T cast; |
| 12 | +- MessageIter ri = _msg.reader(); |
| 13 | +- ri >> cast; |
| 14 | +- return cast; |
| 15 | +- } |
| 16 | ++ operator T() const; |
| 17 | + |
| 18 | + private: |
| 19 | + |
| 20 | +@@ -316,7 +310,7 @@ struct type< Struct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, |
| 21 | + } |
| 22 | + }; |
| 23 | + |
| 24 | +-} /* namespace DBus */ |
| 25 | ++extern DXXAPI DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Variant &val); |
| 26 | + |
| 27 | + inline DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Invalid &) |
| 28 | + { |
| 29 | +@@ -551,6 +545,8 @@ inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Signature |
| 30 | + return ++iter; |
| 31 | + } |
| 32 | + |
| 33 | ++extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); |
| 34 | ++ |
| 35 | + template<typename E> |
| 36 | + inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, std::vector<E>& val) |
| 37 | + { |
| 38 | +@@ -644,7 +640,16 @@ inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Struct<T1, |
| 39 | + return ++iter; |
| 40 | + } |
| 41 | + |
| 42 | +-extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); |
| 43 | ++template <typename T> |
| 44 | ++inline DBus::Variant::operator T() const |
| 45 | ++{ |
| 46 | ++ T cast; |
| 47 | ++ DBus::MessageIter ri = _msg.reader(); |
| 48 | ++ ri >> cast; |
| 49 | ++ return cast; |
| 50 | ++} |
| 51 | ++ |
| 52 | ++} /* namespace DBus */ |
| 53 | + |
| 54 | + #endif//__DBUSXX_TYPES_H |
| 55 | + |
| 56 | +diff --git a/src/types.cpp b/src/types.cpp |
| 57 | +index d414a3e..70f9ac0 100644 |
| 58 | +--- a/src/types.cpp |
| 59 | ++++ b/src/types.cpp |
| 60 | +@@ -34,7 +34,7 @@ |
| 61 | + #include "message_p.h" |
| 62 | + #include "internalerror.h" |
| 63 | + |
| 64 | +-using namespace DBus; |
| 65 | ++namespace DBus { |
| 66 | + |
| 67 | + Variant::Variant() |
| 68 | + : _msg(CallMessage()) // dummy message used as temporary storage for variant data |
| 69 | +@@ -104,3 +104,4 @@ MessageIter &operator >> (MessageIter &iter, Variant &val) |
| 70 | + return ++iter; |
| 71 | + } |
| 72 | + |
| 73 | ++} /* namespace DBus */ |
0 commit comments