From cb4a4cdde7792b3d1345f491616d925bddc17a0f Mon Sep 17 00:00:00 2001 From: Kohei Takahashi Date: Tue, 8 May 2018 00:23:04 +0900 Subject: [PATCH] It should be default constructible --- include/boost/fusion/support/detail/propagate_trivialness.hpp | 3 +++ test/support/propagate_trivialness.cpp | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/include/boost/fusion/support/detail/propagate_trivialness.hpp b/include/boost/fusion/support/detail/propagate_trivialness.hpp index fdb6b57a..a1c22bea 100644 --- a/include/boost/fusion/support/detail/propagate_trivialness.hpp +++ b/include/boost/fusion/support/detail/propagate_trivialness.hpp @@ -19,6 +19,9 @@ struct trivial_base { }; struct non_trivial_base { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_DEFAULTED_FUNCTION(non_trivial_base() BOOST_NOEXCEPT, {}) + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED non_trivial_base(non_trivial_base const&) BOOST_NOEXCEPT { } }; diff --git a/test/support/propagate_trivialness.cpp b/test/support/propagate_trivialness.cpp index e4d90af2..17050ca4 100644 --- a/test/support/propagate_trivialness.cpp +++ b/test/support/propagate_trivialness.cpp @@ -11,12 +11,16 @@ #include #include #include +#include #include "trivial.hpp" using namespace boost; using namespace boost::fusion::detail; +BOOST_MPL_ASSERT((is_default_constructible)); +BOOST_MPL_ASSERT((is_default_constructible)); + BOOST_FUSION_ASSERT_FALLBACK((is_trivially_copyable)); BOOST_MPL_ASSERT_NOT((is_trivially_copyable));