]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Workaround for an issue with gcc-4.1 and an explicit destructor call
authorMatthias Maier <tamiko@kyomu.43-1.org>
Sat, 10 Aug 2013 07:47:53 +0000 (07:47 +0000)
committerMatthias Maier <tamiko@kyomu.43-1.org>
Sat, 10 Aug 2013 07:47:53 +0000 (07:47 +0000)
(aka I don't want to give up yet and fully revert the change ;-) )

git-svn-id: https://svn.dealii.org/trunk@30272 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/source/fe/fe_values.cc

index 9b63f27839c61a309d21a09495345fe494003062..a94336f66913db8c52b65fe0787968874e2d57db 100644 (file)
@@ -1641,7 +1641,10 @@ namespace internal
       scalars.resize (n_scalars);
       for (unsigned int component=0; component<n_scalars; ++component)
         {
-          scalars[component].~Scalar();
+          // Use a typedef here to work around an issue with gcc-4.1:
+          typedef dealii::FEValuesViews::Scalar<dim,spacedim> ScalarView;
+          scalars[component].ScalarView::~ScalarView ();
+
           new (&scalars[component])
           dealii::FEValuesViews::Scalar<dim,spacedim>(fe_values,
                                                       component);
@@ -1660,7 +1663,10 @@ namespace internal
       vectors.resize (n_vectors);
       for (unsigned int component=0; component<n_vectors; ++component)
         {
-          vectors[component].~Vector ();
+          // Use a typedef here to work around an issue with gcc-4.1:
+          typedef dealii::FEValuesViews::Vector<dim,spacedim> VectorView;
+          vectors[component].VectorView::~VectorView ();
+
           new (&vectors[component])
           dealii::FEValuesViews::Vector<dim,spacedim>(fe_values,
                                                       component);
@@ -1675,7 +1681,9 @@ namespace internal
       symmetric_second_order_tensors.resize(n_symmetric_second_order_tensors);
       for (unsigned int component = 0; component < n_symmetric_second_order_tensors; ++component)
         {
-          symmetric_second_order_tensors[component].~SymmetricTensor();
+          // Use a typedef here to work around an issue with gcc-4.1:
+          typedef dealii::FEValuesViews::SymmetricTensor<2, dim, spacedim> SymmetricTensorView;
+          symmetric_second_order_tensors[component].SymmetricTensorView::~SymmetricTensorView();
 
           new (&symmetric_second_order_tensors[component])
           dealii::FEValuesViews::SymmetricTensor<2, dim, spacedim > (fe_values,
@@ -1692,7 +1700,9 @@ namespace internal
       second_order_tensors.resize(n_second_order_tensors);
       for (unsigned int component = 0; component < n_second_order_tensors; ++component)
         {
-          second_order_tensors[component].~Tensor();
+          // Use a typedef here to work around an issue with gcc-4.1:
+          typedef dealii::FEValuesViews::Tensor<2, dim, spacedim> TensorView;
+          second_order_tensors[component].TensorView::~TensorView();
 
           new (&second_order_tensors[component])
           dealii::FEValuesViews::Tensor<2, dim, spacedim > (fe_values,

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.