| #include <cassert> |
| #include <sdbusplus/message/types.hpp> |
| #include <sdbusplus/utility/tuple_to_array.hpp> |
| |
| template <typename ...Args> |
| auto dbus_string(Args&& ... args) |
| { |
| return std::string( |
| sdbusplus::utility::tuple_to_array( |
| sdbusplus::message::types::type_id<Args...>()).data()); |
| } |
| |
| int main() |
| { |
| |
| // Check a few simple types. |
| assert(dbus_string(1) == "i"); |
| assert(dbus_string(1.0) == "d"); |
| |
| // Check a multiple parameter call. |
| assert(dbus_string(false, true) == "bb"); |
| assert(dbus_string(1, 2, 3, true, 1.0) == "iiibd"); |
| |
| // Check an l-value and r-value reference. |
| { |
| std::string a = "a"; |
| std::string b = "b"; |
| const char* c = "c"; |
| |
| assert(dbus_string(a, std::move(b), c) == "sss"); |
| } |
| return 0; |
| } |