From f9c4f870c37eb9ce9a7721eb012646056f0c2a7a Mon Sep 17 00:00:00 2001 From: Markus Blatt Date: Thu, 24 Oct 2019 14:41:07 +0200 Subject: [PATCH] Fixes g++-8's problems with return type deduction (ALUGrid master). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes the following compile error in the tests for ALUGrid master. Tested with DUNE 2.4-2.7 ``` /home/mblatt/src/dune/opm-release-master/opm-models/tests/test_quadrature.cc: In function ‘void testTetrahedron()’: /home/mblatt/src/dune/opm-release-master/opm-models/tests/test_quadrature.cc:191:32: error: unable to deduce ‘auto*’ from ‘Dune::ALU3dGridFactory< >::createGrid() [with ALUGrid = Dune::ALUGrid<3, 3, (Dune::ALUGridElementType)0, (Dune::ALUGridRefinementType)1>; Dune::ALU3dGridFactory< >::GridPtrType = Dune::ToUniquePtr >]()’ auto *grid = gf.createGrid(); ^ /home/mblatt/src/dune/opm-release-master/opm-models/tests/test_quadrature.cc:191:32: note: mismatched types ‘auto*’ and ‘Dune::ToUniquePtr >’ /home/mblatt/src/dune/opm-release-master/opm-models/tests/test_quadrature.cc:196:12: error: type ‘’ argument given to ‘delete’, expected pointer delete grid; ^~~~ /home/mblatt/src/dune/opm-release-master/opm-models/tests/test_quadrature.cc: In function ‘void testCube()’: /home/mblatt/src/dune/opm-release-master/opm-models/tests/test_quadrature.cc:286:32: error: unable to deduce ‘auto*’ from ‘Dune::ALU3dGridFactory< >::createGrid() [with ALUGrid = Dune::ALUGrid<3, 3, (Dune::ALUGridElementType)1, (Dune::ALUGridRefinementType)1>; Dune::ALU3dGridFactory< >::GridPtrType = Dune::ToUniquePtr >]()’ auto *grid = gf.createGrid(); ^ /home/mblatt/src/dune/opm-release-master/opm-models/tests/test_quadrature.cc:286:32: note: mismatched types ‘auto*’ and ‘Dune::ToUniquePtr >’ /home/mblatt/src/dune/opm-release-master/opm-models/tests/test_quadrature.cc:291:12: error: type ‘’ argument given to ‘delete’, expected pointer delete grid; ^~~~ ``` --- tests/models/test_quadrature.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/models/test_quadrature.cpp b/tests/models/test_quadrature.cpp index 004686742..0b3c8f0ab 100644 --- a/tests/models/test_quadrature.cpp +++ b/tests/models/test_quadrature.cpp @@ -188,12 +188,10 @@ void testTetrahedron() std::vector v = { 0, 1, 2, 3 }; // in Dune >= 2.6 topologyIds seem to be opaque integers. WTF!? gf.insertElement(Dune::GeometryType(/*topologyId=*/0, dim), v); - auto *grid = gf.createGrid(); + const auto& grid = *gf.createGrid(); // write the sub-control volumes to a VTK file. - writeTetrahedronSubControlVolumes(*grid); - - delete grid; + writeTetrahedronSubControlVolumes(grid); #endif // HAVE_DUNE_ALUGRID } @@ -283,12 +281,10 @@ void testCube() std::vector v = { 0, 1, 2, 3, 4, 5, 6, 7 }; // in Dune >= 2.6 topologyIds seem to be opaque integers. WTF!? gf.insertElement(Dune::GeometryType((1 << dim) - 1, dim), v); - auto *grid = gf.createGrid(); + const auto& grid = *gf.createGrid(); // write the sub-control volumes to a VTK file. - writeCubeSubControlVolumes(*grid); - - delete grid; + writeCubeSubControlVolumes(grid); #endif // HAVE_DUNE_ALUGRID }