File tree Expand file tree Collapse file tree 3 files changed +21
-13
lines changed
Expand file tree Collapse file tree 3 files changed +21
-13
lines changed Original file line number Diff line number Diff line change @@ -35,12 +35,6 @@ constexpr const auto* get_storage(const basic_bvalue<Policy>* value) noexcept;
3535template <typename Policy>
3636constexpr auto * get_storage (basic_bvalue<Policy>* value) noexcept ;
3737
38- // forward declarations
39- template <typename U, typename Policy, typename T>
40- requires serializable<T>
41- inline void assign_to_bvalue (basic_bvalue<Policy>& bvalue, U&& value);
42-
43-
4438template <basic_bvalue_instantiation BV>
4539decltype (auto ) evaluate(const bpointer& pointer, BV&& bv);
4640
Original file line number Diff line number Diff line change @@ -37,10 +37,17 @@ concept bvalue_alternative_type =
3737
3838namespace detail {
3939
40- // forward declaration.
41- template <typename U, typename Policy, typename T>
40+ #if defined(__GNUC__) && __GNUC__ < 12
41+ // forward declaration.
42+ template <typename U, typename Policy, typename T = std::remove_cvref_t <U>>
43+ requires serializable<T>
44+ inline void assign_to_bvalue (basic_bvalue<Policy>& bvalue, U&& value);
45+ #else
46+ // forward declaration.
47+ template <typename U, typename Policy, typename T>
4248 requires serializable<T>
43- inline void assign_to_bvalue (basic_bvalue<Policy>& bvalue, U&& value);
49+ inline void assign_to_bvalue (basic_bvalue<Policy>& bvalue, U&& value);
50+ #endif
4451
4552// forward declaration.
4653template <serializable T, basic_bvalue_instantiation U>
Original file line number Diff line number Diff line change @@ -61,10 +61,17 @@ concept event_connecting_is_adl_overloaded =
6161} // namespace detail
6262
6363
64- // forward declaration
65- template <typename EC, typename U, typename T>
66- requires serializable<T> && event_consumer<EC>
67- constexpr void connect (EC& consumer, U&& producer);
64+ #if defined(__GNUC__) && __GNUC__ < 12
65+ // forward declaration
66+ template <typename EC, typename U, typename T = std::remove_cvref_t <U>>
67+ requires serializable<T> && event_consumer<EC>
68+ constexpr void connect (EC& consumer, U&& producer);
69+ #else
70+ // forward declaration
71+ template <typename EC, typename U, typename T>
72+ requires serializable<T> && event_consumer<EC>
73+ constexpr void connect (EC& consumer, U&& producer);
74+ #endif
6875
6976
7077
You can’t perform that action at this time.
0 commit comments