2 Коміти c987fbd98f ... 06a44d0d67

Автор SHA1 Опис Дата
  lloda 06a44d0d67 Better way to flag bad uses of ra::len 5 місяців тому
  lloda c987fbd98f Better way to flag bad uses of ra::len 5 місяців тому
1 змінених файлів з 5 додано та 5 видалено
  1. 5 5
      ra/expr.hh

+ 5 - 5
ra/expr.hh

@@ -78,7 +78,7 @@ constexpr bool inside(dim_t i, dim_t b) { return 0<=i && i<b; }
 constexpr struct Len
 {
     consteval static rank_t rank() { return 0; }
-    [[noreturn]] consteval static void len_outside_subscript_context() { abort(); }
+    [[noreturn]] consteval static void len_outside_subscript_context() { std::abort(); }
     consteval static dim_t len_s(int k) { len_outside_subscript_context(); }
     consteval static dim_t len(int k) { len_outside_subscript_context(); }
     consteval static dim_t step(int k) { len_outside_subscript_context(); }
@@ -102,8 +102,8 @@ struct Scalar
     C c;
     RA_ASSIGNOPS_DEFAULT_SET
     consteval static rank_t rank() { return 0; }
-    constexpr static dim_t len_s(int k) { std::abort(); }
-    constexpr static dim_t len(int k) { std::abort(); }
+    constexpr static dim_t len_s(int k) { std::abort(); } // FIXME consteval cf Match::check_s
+    constexpr static dim_t len(int k) { std::abort(); } // FIXME idem
     constexpr static dim_t step(int k) { return 0; }
     constexpr static void adv(rank_t k, dim_t d) {}
     constexpr static bool keep_step(dim_t st, int z, int j) { return true; }
@@ -111,7 +111,7 @@ struct Scalar
     constexpr C & operator*() requires (std::is_lvalue_reference_v<C>) { return c; } // [ra37]
     constexpr C const & operator*() requires (!std::is_lvalue_reference_v<C>) { return c; }
     constexpr C const & operator*() const { return c; } // [ra39]
-    constexpr static int save() { return 0; }
+    consteval static int save() { return 0; }
     constexpr static void load(int) {}
     constexpr static void mov(dim_t d) {}
 };
@@ -174,7 +174,7 @@ struct Ptr
 template <class X> using seq_arg = std::conditional_t<is_constant<std::decay_t<X>> || is_scalar<std::decay_t<X>>, std::decay_t<X>, X>;
 
 template <class S>
-constexpr auto
+consteval auto
 thestep()
 {
     if constexpr (std::is_integral_v<S>) {