diff --git a/src/lib/dbus/AppendIter.hxx b/src/lib/dbus/AppendIter.hxx index 446bb0ff3..b3dc28747 100644 --- a/src/lib/dbus/AppendIter.hxx +++ b/src/lib/dbus/AppendIter.hxx @@ -103,7 +103,7 @@ public: template AppendMessageIter &AppendEmptyArray() { return AppendMessageIter(*this, DBUS_TYPE_ARRAY, - T::as_string.value) + T::as_string) .CloseContainer(*this); } @@ -120,7 +120,7 @@ public: AppendMessageIter &AppendVariant(const T &value) { typedef VariantTypeTraits Traits; return AppendMessageIter(*this, Traits::TYPE, - Traits::as_string.value) + Traits::as_string) .Append(value) .CloseContainer(*this); } @@ -146,7 +146,7 @@ public: typedef typename W::ContainedTraits ContainedTraits; return AppendMessageIter(*this, Traits::TYPE, - ContainedTraits::as_string.value) + ContainedTraits::as_string) .Append(value.value) .CloseContainer(*this); } @@ -158,7 +158,7 @@ public: typedef typename W::ContainedTraits ContainedTraits; return AppendMessageIter(*this, Traits::TYPE, - ContainedTraits::as_string.value) + ContainedTraits::as_string) .AppendFixedArray(value.value) .CloseContainer(*this); } diff --git a/src/neighbor/plugins/UdisksNeighborPlugin.cxx b/src/neighbor/plugins/UdisksNeighborPlugin.cxx index b43331051..535969223 100644 --- a/src/neighbor/plugins/UdisksNeighborPlugin.cxx +++ b/src/neighbor/plugins/UdisksNeighborPlugin.cxx @@ -245,7 +245,7 @@ UdisksNeighborExplorer::HandleMessage(DBusConnection *, DBusMessage *message) no if (dbus_message_is_signal(message, DBUS_OM_INTERFACE, "InterfacesAdded") && - dbus_message_has_signature(message, InterfacesAddedType::as_string.value)) { + dbus_message_has_signature(message, InterfacesAddedType::as_string)) { RecurseInterfaceDictEntry(ReadMessageIter(*message), [this](const char *path, auto &&i){ UDisks2::Object o(path); UDisks2::ParseObject(o, std::forward(i)); @@ -256,7 +256,7 @@ UdisksNeighborExplorer::HandleMessage(DBusConnection *, DBusMessage *message) no return DBUS_HANDLER_RESULT_HANDLED; } else if (dbus_message_is_signal(message, DBUS_OM_INTERFACE, "InterfacesRemoved") && - dbus_message_has_signature(message, InterfacesRemovedType::as_string.value)) { + dbus_message_has_signature(message, InterfacesRemovedType::as_string)) { Remove(ReadMessageIter(*message).GetString()); return DBUS_HANDLER_RESULT_HANDLED; } else diff --git a/src/util/TemplateString.hxx b/src/util/TemplateString.hxx index 79969a88a..9878fcbe4 100644 --- a/src/util/TemplateString.hxx +++ b/src/util/TemplateString.hxx @@ -32,6 +32,7 @@ #include // for std::size() #include +#include namespace TemplateString { @@ -39,6 +40,14 @@ template struct Buffer { static constexpr std::size_t size = _size; char value[size + 1]; + + constexpr operator const char *() const noexcept { + return value; + } + + constexpr operator std::string_view() const noexcept { + return {value, size}; + } }; /**