]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add to the documentation of ArrayView.
authorWolfgang Bangerth <bangerth@colostate.edu>
Mon, 9 Jan 2023 20:59:15 +0000 (13:59 -0700)
committerWolfgang Bangerth <bangerth@colostate.edu>
Tue, 10 Jan 2023 04:02:02 +0000 (21:02 -0700)
include/deal.II/base/array_view.h

index 168310404e1716c1c36679d98f43775334e1b14b..5d603c30185ed8662c9bb51d5cff1f77ecddb16b 100644 (file)
@@ -239,6 +239,14 @@ public:
   /**
    * Compare two ArrayView objects of the same type. Two objects are considered
    * equal if they have the same size and the same starting pointer.
+   *
+   * Note that this means that the operation tests that the *views* are the
+   * same. If they are, then of course the elements represented by the view
+   * are also the same. But the converse is not true: Two ArrayView objects
+   * may point to different parts of the memory space and in that case the
+   * comparison for equality will return `false` even if the *elements* the
+   * views point to are the same.
+   *
    * This version always compares with the const value_type.
    */
   bool
@@ -248,6 +256,14 @@ public:
   /**
    * Compare two ArrayView objects of the same type. Two objects are considered
    * equal if they have the same size and the same starting pointer.
+   *
+   * Note that this means that the operation tests that the *views* are the
+   * same. If they are, then of course the elements represented by the view
+   * are also the same. But the converse is not true: Two ArrayView objects
+   * may point to different parts of the memory space and in that case the
+   * comparison for equality will return `false` even if the *elements* the
+   * views point to are the same.
+   *
    * This version always compares with the non-const value_type.
    */
   bool
@@ -256,7 +272,18 @@ public:
 
   /**
    * Compare two ArrayView objects of the same type. Two objects are considered
-   * equal if they have the same size and the same starting pointer.
+   * equal if they have the same size and the same starting pointer, and the
+   * current operation therefore returns `true` if the two views being compared
+   * point to different memory locations, or if they point to the same memory
+   * location but represent different sizes.
+   *
+   * Note that this means that the operation tests that the *views* are the
+   * not the same. But this does not mean that the elements pointed to by
+   * the view are not equal: Two ArrayView objects
+   * may point to different parts of the memory space and in that case the
+   * comparison for inequality will return `true` even if the *elements* the
+   * views point to are the same.
+   *
    * This version always compares with the const value_type.
    */
   bool
@@ -266,6 +293,14 @@ public:
   /**
    * Compare two ArrayView objects of the same type. Two objects are considered
    * equal if they have the same size and the same starting pointer.
+   *
+   * Note that this means that the operation tests that the *views* are the
+   * not the same. But this does not mean that the elements pointed to by
+   * the view are not equal: Two ArrayView objects
+   * may point to different parts of the memory space and in that case the
+   * comparison for inequality will return `true` even if the *elements* the
+   * views point to are the same.
+   *
    * This version always compares with the non-const value_type.
    */
   bool

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.