We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
remove_none
1 parent 7806294 commit dd47090Copy full SHA for dd47090
source/containers/algorithms/remove_none.cpp
@@ -150,8 +150,14 @@ struct remove_none_iterator {
150
[[no_unique_address]] data_t m_data;
151
};
152
153
+template<typename T>
154
+concept optional_type = requires(T value) {
155
+ *value;
156
+ value ? void() : void();
157
+};
158
+
159
// This goes from range<optional<T>> to range<T>
-export template<range Range>
160
+export template<range Range> requires optional_type<containers::range_reference_t<Range>>
161
struct remove_none {
162
constexpr explicit remove_none(Range && input):
163
m_data(OPERATORS_FORWARD(input))
0 commit comments