aboutsummaryrefslogtreecommitdiff
path: root/src/common/concepts.h
diff options
context:
space:
mode:
authorcomex <comexk@gmail.com>2020-12-29 14:26:16 -0500
committercomex <comexk@gmail.com>2020-12-29 14:33:41 -0500
commit388cf58b31d6480007901785851e6369b0efe64b (patch)
tree526f9692f15be9f946511082692420f4971104a8 /src/common/concepts.h
parent22ba437aa4e77ee2af17501956564338d269da47 (diff)
k_priority_queue: Fix concepts use
- For `std::same_as`, add missing include of `<concepts>`. - For `std::convertible_to`, create a replacement in `common/concepts.h` and use that instead. This would also be found in `<concepts>`, but unlike `std::same_as`, `std::convertible_to` is not yet implemented in libc++, LLVM's STL implementation - not even in master. (In fact, `std::same_as` is the *only* concept currently implemented. For some reason.)
Diffstat (limited to 'src/common/concepts.h')
-rw-r--r--src/common/concepts.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/common/concepts.h b/src/common/concepts.h
index 5bef3ad676..aa08065a7f 100644
--- a/src/common/concepts.h
+++ b/src/common/concepts.h
@@ -31,4 +31,8 @@ concept DerivedFrom = requires {
std::is_convertible_v<const volatile Derived*, const volatile Base*>;
};
+// TODO: Replace with std::convertible_to when libc++ implements it.
+template <typename From, typename To>
+concept ConvertibleTo = std::is_convertible_v<From, To>;
+
} // namespace Common