File tree Expand file tree Collapse file tree 1 file changed +4
-17
lines changed Expand file tree Collapse file tree 1 file changed +4
-17
lines changed Original file line number Diff line number Diff line change @@ -24,26 +24,13 @@ template<typename T>
24
24
concept IsEquation = std::is_same_v<T, Equation>;
25
25
26
26
template <typename T>
27
- concept EquationArrayContainer = requires (T a)
27
+ concept EquationArray = requires (T a)
28
28
{
29
- requires IsEquation<std::iter_value_t <decltype (std::begin (a ))>>;
30
- requires std::forward_iterator<decltype (std::begin (a ))>;
31
- requires std::forward_iterator<decltype (std::end (a ))>;
29
+ requires IsEquation<std::iter_value_t <decltype (std::begin (std::declval<T&>() ))>>;
30
+ requires std::forward_iterator<decltype (std::begin (std::declval<T&>() ))>;
31
+ requires std::forward_iterator<decltype (std::end (std::declval<T&>() ))>;
32
32
};
33
33
34
- template <typename T>
35
- concept EquationPointerArray = std::is_pointer_v<T> && IsEquation<std::remove_pointer_t <T>>;
36
-
37
- template <typename T>
38
- concept EquationBoundedArray = std::is_bounded_array_v<T> && requires (T a)
39
- {
40
- requires IsEquation<std::remove_cvref_t <decltype (a[0 ])>>;
41
- };
42
-
43
- template <typename T>
44
- concept EquationArray = EquationArrayContainer<T> || EquationPointerArray<T> || EquationBoundedArray<T>;
45
-
46
-
47
34
// TODO: replace the function with std::from_chairs, that becomes constexpr in C++23.
48
35
[[nodiscard]] constexpr std::pair<int64_t , size_t > parseNumber (std::string_view str) noexcept {
49
36
constexpr auto char_to_int = [](char c) {
You can’t perform that action at this time.
0 commit comments