From 60e0ba81df598d5c6fb1e48f88d37e2b1e5a644c Mon Sep 17 00:00:00 2001 From: bangerth Date: Wed, 5 Feb 2014 17:19:04 +0000 Subject: [PATCH] Try to work around a bug in MS VC++. This is not pretty, but if it gets the job done I'm ok with it. git-svn-id: https://svn.dealii.org/trunk@32413 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/include/deal.II/grid/grid_tools.h | 21 +++++++++++++++++++++ deal.II/source/grid/grid_tools.cc | 4 ++++ deal.II/source/grid/grid_tools.inst.in | 4 ++++ 3 files changed, 29 insertions(+) diff --git a/deal.II/include/deal.II/grid/grid_tools.h b/deal.II/include/deal.II/grid/grid_tools.h index e8de5d95ab..a439b3da7b 100644 --- a/deal.II/include/deal.II/grid/grid_tools.h +++ b/deal.II/include/deal.II/grid/grid_tools.h @@ -873,6 +873,23 @@ namespace GridTools fix_up_distorted_child_cells (const typename Triangulation::DistortedCellList &distorted_cells, Triangulation &triangulation); +#ifdef _MSC_VER + // Microsoft's VC++ has a bug where it doesn't want to recognize that + // an implementation (definition) of the extract_boundary_mesh function + // matches a declaration. This can apparently only be avoided by + // doing some contortion with the return type using the following + // intermediate type. This is only used when using MS VC++ and uses + // the direct way of doing it otherwise + template