From f559fc06637206b34ae3a7ceb0d921b1f318a6b5 Mon Sep 17 00:00:00 2001 From: Viliam Lejcik Date: Mon, 18 Dec 2017 19:15:40 +0100 Subject: [PATCH 1/2] Added a test case that fails to compile with clang --- test/unittests/Types_test.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/unittests/Types_test.cpp b/test/unittests/Types_test.cpp index c37642b..f09372c 100644 --- a/test/unittests/Types_test.cpp +++ b/test/unittests/Types_test.cpp @@ -203,3 +203,12 @@ TEST(CopiesOfVariant, SerializeToAndDeserializeFromMessageSuccessfully) ASSERT_THAT(receivedVariant2.get(), Eq(value)); ASSERT_THAT(receivedVariant3.get(), Eq(value)); } + +TEST(AStruct, CreatesStructFromTuple) +{ + std::tuple value{1234, "abcd"}; + sdbus::Struct valueStruct{value}; + + ASSERT_THAT(std::get<0>(valueStruct), Eq(std::get<0>(value))); + ASSERT_THAT(std::get<1>(valueStruct), Eq(std::get<1>(value))); +} From dc5ec014ebfd395c25ae3418216a9d8a9809eb0a Mon Sep 17 00:00:00 2001 From: Viliam Lejcik Date: Mon, 18 Dec 2017 19:19:27 +0100 Subject: [PATCH 2/2] Added constructor for sdbus::Struct --- include/sdbus-c++/Types.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/sdbus-c++/Types.h b/include/sdbus-c++/Types.h index fc63dd8..bc71214 100644 --- a/include/sdbus-c++/Types.h +++ b/include/sdbus-c++/Types.h @@ -97,6 +97,9 @@ namespace sdbus { public: using std::tuple<_ValueTypes...>::tuple; + Struct(const std::tuple<_ValueTypes...>& t) + : std::tuple<_ValueTypes...>(t) {} + template auto& get() {