Skip to content

Commit ce7e2de

Browse files
committed
fix: revert duplicate template default arguments for GCC <12
1 parent 3396b37 commit ce7e2de

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

include/bencode/detail/bvalue/basic_bvalue.hpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,6 @@ constexpr const auto* get_storage(const basic_bvalue<Policy>* value) noexcept;
3535
template <typename Policy>
3636
constexpr 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-
4438
template <basic_bvalue_instantiation BV>
4539
decltype(auto) evaluate(const bpointer& pointer, BV&& bv);
4640

include/bencode/detail/bvalue/concepts.hpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,17 @@ concept bvalue_alternative_type =
3737

3838
namespace 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.
4653
template <serializable T, basic_bvalue_instantiation U>

include/bencode/detail/events/concepts.hpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)