diff --git a/mex/sources/libkorder/sylv/QuasiTriangular.hh b/mex/sources/libkorder/sylv/QuasiTriangular.hh
index 0d7bcf1045bc961b70a836b8f0a223a96dc04478..d83aaf0a98a34715ea6cb2b14b07498cd9c64513 100644
--- a/mex/sources/libkorder/sylv/QuasiTriangular.hh
+++ b/mex/sources/libkorder/sylv/QuasiTriangular.hh
@@ -240,7 +240,7 @@ public:
     real = r;
   }
   virtual ~_matrix_iter() = default;
-  bool
+  [[nodiscard]] bool
   operator==(const _Self& it) const
   {
     return ptr == it.ptr;
diff --git a/mex/sources/libkorder/sylv/Vector.hh b/mex/sources/libkorder/sylv/Vector.hh
index 191dd3b0d0d25d595a1ede43189a77d103ea017d..ad8affa69cea562d585d96dde8fa1a1321d7b6bd 100644
--- a/mex/sources/libkorder/sylv/Vector.hh
+++ b/mex/sources/libkorder/sylv/Vector.hh
@@ -211,7 +211,7 @@ public:
     return s;
   }
   // Exact equality
-  bool operator==(const ConstVector& y) const;
+  [[nodiscard]] bool operator==(const ConstVector& y) const;
   // Lexicographic ordering
   [[nodiscard]] std::partial_ordering operator<=>(const ConstVector& y) const;
 
diff --git a/mex/sources/libkorder/tl/equivalence.hh b/mex/sources/libkorder/tl/equivalence.hh
index 82e635878a53b35c441a54a4cb2f7ea74ea88426..006e76dba565c416c1a3f6916e192daffda68c04 100644
--- a/mex/sources/libkorder/tl/equivalence.hh
+++ b/mex/sources/libkorder/tl/equivalence.hh
@@ -75,7 +75,7 @@ public:
   OrdSequence() : data()
   {
   }
-  bool operator==(const OrdSequence& s) const;
+  [[nodiscard]] bool operator==(const OrdSequence& s) const;
   int operator[](int i) const;
   [[nodiscard]] std::partial_ordering operator<=>(const OrdSequence& s) const;
   [[nodiscard]] const std::vector<int>&
@@ -121,7 +121,7 @@ public:
   // Copy constructor plus gluing i1 and i2 in one class
   Equivalence(const Equivalence& e, int i1, int i2);
 
-  bool operator==(const Equivalence& e) const;
+  [[nodiscard]] bool operator==(const Equivalence& e) const;
   [[nodiscard]] int
   getN() const
   {
diff --git a/mex/sources/libkorder/tl/gs_tensor.hh b/mex/sources/libkorder/tl/gs_tensor.hh
index 69046e3be8fd7e05bc91c1cbf78f18389ab1c2d3..d1c70328baba3f6982663ab5f4a9958761f3bc6f 100644
--- a/mex/sources/libkorder/tl/gs_tensor.hh
+++ b/mex/sources/libkorder/tl/gs_tensor.hh
@@ -76,7 +76,7 @@ public:
   // Constructs the tensor dimensions for slicing (see the implementation for details)
   TensorDimens(const IntSequence& ss, const IntSequence& coor);
 
-  bool
+  [[nodiscard]] bool
   operator==(const TensorDimens& td) const
   {
     return nvs == td.nvs && sym == td.sym;
diff --git a/mex/sources/libkorder/tl/int_sequence.hh b/mex/sources/libkorder/tl/int_sequence.hh
index dd8f5e3e5faddd4fe46685d6bdfc9e413b47efb2..2a2e0661589e224ce1ddc633a8dac126c62a2fef 100644
--- a/mex/sources/libkorder/tl/int_sequence.hh
+++ b/mex/sources/libkorder/tl/int_sequence.hh
@@ -120,7 +120,7 @@ public:
     if (destroy)
       delete[] data;
   }
-  bool operator==(const IntSequence& s) const;
+  [[nodiscard]] bool operator==(const IntSequence& s) const;
   int&
   operator[](int i)
   {
diff --git a/mex/sources/libkorder/tl/kron_prod.hh b/mex/sources/libkorder/tl/kron_prod.hh
index f76e1621ddda77ec5f89bd7a4775cbf8b4abd954..00df2f688c4392558c935c1710ff8ba04c341026 100644
--- a/mex/sources/libkorder/tl/kron_prod.hh
+++ b/mex/sources/libkorder/tl/kron_prod.hh
@@ -1,6 +1,6 @@
 /*
  * Copyright © 2004 Ondra Kamenik
- * Copyright © 2019-2023 Dynare Team
+ * Copyright © 2019-2024 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -86,7 +86,7 @@ public:
 
   KronProdDimens& operator=(const KronProdDimens& kd) = default;
   KronProdDimens& operator=(KronProdDimens&& kd) = default;
-  bool
+  [[nodiscard]] bool
   operator==(const KronProdDimens& kd) const
   {
     return rows == kd.rows && cols == kd.cols;
diff --git a/mex/sources/libkorder/tl/permutation.hh b/mex/sources/libkorder/tl/permutation.hh
index a799532a0ea3ded51e6464e54760e6889e2b032b..a41075e287949934535dc1979becd67fd221ed6f 100644
--- a/mex/sources/libkorder/tl/permutation.hh
+++ b/mex/sources/libkorder/tl/permutation.hh
@@ -1,6 +1,6 @@
 /*
  * Copyright © 2004 Ondra Kamenik
- * Copyright © 2019-2023 Dynare Team
+ * Copyright © 2019-2024 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -95,7 +95,7 @@ public:
   Permutation(const Permutation& p, int i) : permap(p.permap.insert(p.size(), i))
   {
   }
-  bool
+  [[nodiscard]] bool
   operator==(const Permutation& p) const
   {
     return permap == p.permap;
diff --git a/mex/sources/libkorder/tl/ps_tensor.hh b/mex/sources/libkorder/tl/ps_tensor.hh
index 143ca2a34ad098f91007b82bccc08915162da869..773f7bb41fe73ad0b2f420a6d7f7c062af77e617 100644
--- a/mex/sources/libkorder/tl/ps_tensor.hh
+++ b/mex/sources/libkorder/tl/ps_tensor.hh
@@ -1,6 +1,6 @@
 /*
  * Copyright © 2004 Ondra Kamenik
- * Copyright © 2019-2023 Dynare Team
+ * Copyright © 2019-2024 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -115,7 +115,7 @@ public:
   {
     per.apply(nvmax);
   }
-  bool
+  [[nodiscard]] bool
   operator==(const PerTensorDimens& td) const
   {
     return TensorDimens::operator==(td) && per == td.per;
diff --git a/mex/sources/libkorder/tl/symmetry.hh b/mex/sources/libkorder/tl/symmetry.hh
index 997d0052ce6d4c81734073d5e59dbfef95701055..907b02c6068c2c0ee46b28fa9f4e9453adbf5a01 100644
--- a/mex/sources/libkorder/tl/symmetry.hh
+++ b/mex/sources/libkorder/tl/symmetry.hh
@@ -126,7 +126,7 @@ public:
   {
     return run;
   }
-  bool
+  [[nodiscard]] bool
   operator==(const symiterator& it)
   {
     return dim == it.dim && run == it.run;
diff --git a/mex/sources/libkorder/tl/tensor.hh b/mex/sources/libkorder/tl/tensor.hh
index a210bd8898b3ad24540e4844577e3e6010b7840a..27cbd012caa92275d640e8f089dae50163f6bed3 100644
--- a/mex/sources/libkorder/tl/tensor.hh
+++ b/mex/sources/libkorder/tl/tensor.hh
@@ -150,7 +150,7 @@ public:
     {
       return offset;
     }
-    bool
+    [[nodiscard]] bool
     operator==(const index& n) const
     {
       return offset == n.offset;