blob: 4172cb610acd2c45c552514d46e7836d95f8945c [file] [log] [blame]
#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;
}