Skip to content

Commit 4ddc3fa

Browse files
committed
try to fix error
1 parent 69263f4 commit 4ddc3fa

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

include/boost/pfr/detail/fields_count.hpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,14 +180,22 @@ constexpr auto assert_first_not_base(long) noexcept
180180

181181
///////////////////// Helpers for initializable detection
182182
// Note that these take O(N) compile time and memory!
183-
template <class T, std::size_t... I, class /*Enable*/ = std::enable_if_t<std::is_copy_constructible<T>::value>>
183+
template <class T, std::size_t... I, class /*Enable*/ = std::enable_if_t<std::is_copy_constructible<T>::value and !std::is_aggregate_v<T>>>
184184
constexpr auto enable_if_initializable_helper(std::index_sequence<I...>) noexcept
185185
-> std::add_pointer_t<decltype(T{ubiq_lref_constructor{I}...})>;
186186

187-
template <class T, std::size_t... I, class /*Enable*/ = std::enable_if_t<!std::is_copy_constructible<T>::value>>
187+
template <class T, std::size_t... I, class /*Enable*/ = std::enable_if_t<!std::is_copy_constructible<T>::value and !std::is_aggregate_v<T>>>
188188
constexpr auto enable_if_initializable_helper(std::index_sequence<I...>) noexcept
189189
-> std::add_pointer_t<decltype(T{ubiq_rref_constructor{I}...})>;
190190

191+
template <class T, std::size_t... I, class /*Enable*/ = std::enable_if_t<std::is_copy_constructible<T>::value and std::is_aggregate_v<T>>>
192+
constexpr auto enable_if_initializable_helper(std::index_sequence<I...>) noexcept
193+
-> std::add_pointer_t<decltype(T{{ubiq_lref_constructor{I}}...})>;
194+
195+
template <class T, std::size_t... I, class /*Enable*/ = std::enable_if_t<!std::is_copy_constructible<T>::value and std::is_aggregate_v<T>>>
196+
constexpr auto enable_if_initializable_helper(std::index_sequence<I...>) noexcept
197+
-> std::add_pointer_t<decltype(T{{ubiq_rref_constructor{I}}...})>;
198+
191199
template <class T, std::size_t N, class U = std::size_t, class /*Enable*/ = decltype(detail::enable_if_initializable_helper<T>(detail::make_index_sequence<N>()))>
192200
using enable_if_initializable_helper_t = U;
193201

0 commit comments

Comments
 (0)