From: Wolfgang Bangerth Date: Wed, 5 Aug 2015 03:05:28 +0000 (-0500) Subject: Un-break compilation. X-Git-Tag: v8.4.0-rc2~677^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1263%2Fhead;p=dealii.git Un-break compilation. On compilers without C++11, we need to stay within the limits of BOOST's maximal number of arguments for boost::bind. --- diff --git a/include/deal.II/fe/fe_system.h b/include/deal.II/fe/fe_system.h index 2a5a883961..313af65b97 100644 --- a/include/deal.II/fe/fe_system.h +++ b/include/deal.II/fe/fe_system.h @@ -1036,12 +1036,12 @@ private: template void compute_fill_one_base (const Mapping &mapping, - const typename Triangulation::cell_iterator &cell, + const std::pair::cell_iterator, + CellSimilarity::Similarity> cell_and_similarity, const std::pair face_sub_no, const Quadrature &quadrature, - const CellSimilarity::Similarity cell_similarity, const std::pair::InternalDataBase *, - const typename Mapping::InternalDataBase *> mapping_internal, + const typename Mapping::InternalDataBase *> mapping_and_fe_internal, const unsigned int base_element, const internal::FEValues::MappingRelatedData &mapping_data, internal::FEValues::FiniteElementRelatedData &output_data) const; diff --git a/source/fe/fe_system.cc b/source/fe/fe_system.cc index f880a0a70e..ca7cfcd410 100644 --- a/source/fe/fe_system.cc +++ b/source/fe/fe_system.cc @@ -1095,17 +1095,20 @@ template void FESystem:: compute_fill_one_base (const Mapping &mapping, - const typename Triangulation::cell_iterator &cell, + const std::pair::cell_iterator, + CellSimilarity::Similarity> cell_and_similarity, const std::pair face_sub_no, const Quadrature &quadrature, - const CellSimilarity::Similarity cell_similarity, const std::pair::InternalDataBase *, - const typename Mapping::InternalDataBase *> mapping_internal, + const typename Mapping::InternalDataBase *> mapping_and_fe_internal, const unsigned int base_no, const internal::FEValues::MappingRelatedData &mapping_data, internal::FEValues::FiniteElementRelatedData &output_data) const { - const InternalData &fe_data = static_cast (*mapping_internal.second); + const typename Triangulation::cell_iterator cell = cell_and_similarity.first; + const CellSimilarity::Similarity cell_similarity = cell_and_similarity.second; + + const InternalData &fe_data = static_cast (*mapping_and_fe_internal.second); const unsigned int n_q_points = quadrature.size(); const FiniteElement & @@ -1164,14 +1167,14 @@ compute_fill_one_base (const Mapping &mapping // copied from base_data to data on each face, therefore use // base_fe_data.update_flags. if (face_sub_no.first==invalid_face_number) - base_fe.fill_fe_values(mapping, cell, *cell_quadrature, *mapping_internal.first, + base_fe.fill_fe_values(mapping, cell, *cell_quadrature, *mapping_and_fe_internal.first, base_fe_data, base_data, base_data, cell_similarity); else if (face_sub_no.second==invalid_face_number) base_fe.fill_fe_face_values(mapping, cell, face_sub_no.first, - *face_quadrature, *mapping_internal.first, base_fe_data, base_data, base_data); + *face_quadrature, *mapping_and_fe_internal.first, base_fe_data, base_data, base_data); else base_fe.fill_fe_subface_values(mapping, cell, face_sub_no.first, face_sub_no.second, - *face_quadrature, *mapping_internal.first, base_fe_data, base_data, base_data); + *face_quadrature, *mapping_and_fe_internal.first, base_fe_data, base_data, base_data); // now data has been generated, so copy it. we used to work by // looping over all base elements (i.e. this outer loop), then over @@ -1306,10 +1309,9 @@ compute_fill (const Mapping &mapping, += Threads::new_task (std_cxx11::function(std_cxx11::bind (&FESystem::template compute_fill_one_base, this, std_cxx11::cref(mapping), - std_cxx11::cref(cell), + std::make_pair(cell, CellSimilarity::none), std::make_pair(face_no, sub_no), std_cxx11::cref(quadrature), - CellSimilarity::none, std::make_pair(&mapping_internal, &fedata), base_no,