diff --git a/src/TNL/Containers/ArrayView.h b/src/TNL/Containers/ArrayView.h
index 05f00a418c289d900b90f6a3608d5ffd981e3e21..8b2b1ef33e64b1dbd2330d375594ada14d19eacc 100644
--- a/src/TNL/Containers/ArrayView.h
+++ b/src/TNL/Containers/ArrayView.h
@@ -52,7 +52,7 @@ public:
    // "Templated copy-constructor" accepting any cv-qualification of Value
    template< typename Value_ >
    __cuda_callable__
-   ArrayView( ArrayView< Value_, Device, Index >& array )
+   ArrayView( const ArrayView< Value_, Device, Index >& array )
    : data(array.getData()), size(array.getSize()) {}
 
    // default move-constructor
diff --git a/src/TNL/Containers/VectorView.h b/src/TNL/Containers/VectorView.h
index c53a165d113d96e988129146cc6bdf4c0d27503a..4ef863aa90dc27c69aa14b119414f8fa0b0dddbd 100644
--- a/src/TNL/Containers/VectorView.h
+++ b/src/TNL/Containers/VectorView.h
@@ -109,7 +109,7 @@ public:
 
    //! Computes scalar dot product
    template< typename Vector >
-   NonConstReal scalarProduct( const Vector& v );
+   NonConstReal scalarProduct( const Vector& v ) const;
 
    //! Computes this = thisMultiplicator * this + alpha * x.
    template< typename Vector >
diff --git a/src/TNL/Containers/VectorView_impl.h b/src/TNL/Containers/VectorView_impl.h
index 5e120b32c10a74d3f331be4b51a080e3efb19348..fed792ab330b22aaaf875c1d1e05c40068c2f735 100644
--- a/src/TNL/Containers/VectorView_impl.h
+++ b/src/TNL/Containers/VectorView_impl.h
@@ -243,7 +243,7 @@ template< typename Real,
    template< typename Vector >
 typename VectorView< Real, Device, Index >::NonConstReal
 VectorView< Real, Device, Index >::
-scalarProduct( const Vector& v )
+scalarProduct( const Vector& v ) const
 {
    return Algorithms::VectorOperations< Device >::template getScalarProduct< VectorView, Vector, NonConstReal >( *this, v );
 }