Skip to content

Commit

Permalink
Merge pull request #14839 from sebproell/symmetric-tensor-const-accessor
Browse files Browse the repository at this point in the history
SymmetricTensor access returns const reference
  • Loading branch information
kronbichler committed Mar 3, 2023
2 parents 4234dae + e5d8ddf commit cd1cf88
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 1 deletion.
2 changes: 1 addition & 1 deletion include/deal.II/base/symmetric_tensor.h
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ namespace internal
{
using tensor_type = const ::dealii::SymmetricTensor<rank, dim, Number>;

using reference = Number;
using reference = const Number &;
};

/**
Expand Down
43 changes: 43 additions & 0 deletions tests/tensors/symmetric_tensor_46.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// ---------------------------------------------------------------------
//
// Copyright (C) 2023 by the deal.II authors
//
// This file is part of the deal.II library.
//
// The deal.II library is free software; you can use it, redistribute
// it, and/or modify it under the terms of the GNU Lesser General
// Public License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
// The full text of the license can be found in the file LICENSE.md at
// the top level directory of deal.II.
//
// ---------------------------------------------------------------------


// Test that a const SymmetricTensor is not assignable, i.e., the accessors
// return a const reference

#include <deal.II/base/symmetric_tensor.h>
#include <deal.II/base/tensor.h>
#include <deal.II/base/vectorization.h>

#include "../tests.h"

int
main()
{
initlog();

{
const SymmetricTensor<2, 3, double> st{};
static_assert(std::is_same<decltype(st[0][0]), const double &>::value);
}

{
const SymmetricTensor<2, 3, VectorizedArray<double>> stv{};
static_assert(std::is_same<decltype(stv[0][0]),
const VectorizedArray<double> &>::value);
}

deallog << "OK" << std::endl;
}
2 changes: 2 additions & 0 deletions tests/tensors/symmetric_tensor_46.output
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

DEAL::OK

0 comments on commit cd1cf88

Please sign in to comment.