diff options
Diffstat (limited to 'src/common/intrusive_red_black_tree.h')
| -rw-r--r-- | src/common/intrusive_red_black_tree.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/common/intrusive_red_black_tree.h b/src/common/intrusive_red_black_tree.h index 93046615e..5f6b34e82 100644 --- a/src/common/intrusive_red_black_tree.h +++ b/src/common/intrusive_red_black_tree.h | |||
| @@ -242,19 +242,21 @@ public: | |||
| 242 | 242 | ||
| 243 | template <typename T> | 243 | template <typename T> |
| 244 | concept HasRedBlackKeyType = requires { | 244 | concept HasRedBlackKeyType = requires { |
| 245 | { std::is_same<typename T::RedBlackKeyType, void>::value } -> std::convertible_to<bool>; | 245 | { |
| 246 | }; | 246 | std::is_same<typename T::RedBlackKeyType, void>::value |
| 247 | } -> std::convertible_to<bool>; | ||
| 248 | }; | ||
| 247 | 249 | ||
| 248 | namespace impl { | 250 | namespace impl { |
| 249 | 251 | ||
| 250 | template <typename T, typename Default> | 252 | template <typename T, typename Default> |
| 251 | consteval auto* GetRedBlackKeyType() { | 253 | consteval auto* GetRedBlackKeyType() { |
| 252 | if constexpr (HasRedBlackKeyType<T>) { | 254 | if constexpr (HasRedBlackKeyType<T>) { |
| 253 | return static_cast<typename T::RedBlackKeyType*>(nullptr); | 255 | return static_cast<typename T::RedBlackKeyType*>(nullptr); |
| 254 | } else { | 256 | } else { |
| 255 | return static_cast<Default*>(nullptr); | 257 | return static_cast<Default*>(nullptr); |
| 256 | } | ||
| 257 | } | 258 | } |
| 259 | } | ||
| 258 | 260 | ||
| 259 | } // namespace impl | 261 | } // namespace impl |
| 260 | 262 | ||