dune-functions fails to build with gcc-8
dune-function, commit 43917bb6, fails to build with gcc-8 -std=c++17:
In file included from ../examples/interpolation.cc:21:
../dune/functions/functionspacebases/compositebasis.hh: In instantiation of ‘Dune::Functions::BasisFactory::composite(Args&& ...) [with Args = {Dune::Functions::BasisFactory::Imp::PowerPreBasisFactory<2, Dune::Functions::BasisFactory::FlatLexicographic, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<2> >, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<1>, Dune::Functions::BasisFactory::FlatLexicographic}; typename std::enable_if<isIndexMergingStrategy<typename Dune::Functions::LastType<T>::type>(), int>::type <anonymous> = 0]::<lambda(auto:90&& ...)> [with auto:90 = {Dune::Functions::BasisFactory::Imp::PowerPreBasisFactory<2, Dune::Functions::BasisFactory::FlatLexicographic, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<2> >&, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<1>&}]’:
.../dune-common/dune/common/tupleutility.hh:42:13: required from ‘decltype(auto) Dune::applyPartial(F&&, ArgTuple&&, std::integer_sequence<Index, i ...>) [with F = Dune::Functions::BasisFactory::composite(Args&& ...) [with Args = {Dune::Functions::BasisFactory::Imp::PowerPreBasisFactory<2, Dune::Functions::BasisFactory::FlatLexicographic, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<2> >, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<1>, Dune::Functions::BasisFactory::FlatLexicographic}; typename std::enable_if<isIndexMergingStrategy<typename Dune::Functions::LastType<T>::type>(), int>::type <anonymous> = 0]::<lambda(auto:90&& ...)>; ArgTuple = std::tuple<Dune::Functions::BasisFactory::Imp::PowerPreBasisFactory<2, Dune::Functions::BasisFactory::FlatLexicographic, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<2> >&&, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<1>&&, Dune::Functions::BasisFactory::FlatLexicographic&&>; I = long unsigned int; I ...i = {0, 1}]’
../dune/functions/functionspacebases/compositebasis.hh:523:22: required from ‘auto Dune::Functions::BasisFactory::composite(Args&& ...) [with Args = {Dune::Functions::BasisFactory::Imp::PowerPreBasisFactory<2, Dune::Functions::BasisFactory::FlatLexicographic, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<2> >, Dune::Functions::BasisFactory::Imp::LagrangePreBasisFactory<1>, Dune::Functions::BasisFactory::FlatLexicographic}; typename std::enable_if<isIndexMergingStrategy<typename Dune::Functions::LastType<T>::type>(), int>::type <anonymous> = 0]’
../examples/interpolation.cc:77:5: required from here
../dune/functions/functionspacebases/compositebasis.hh:524:182: error: ‘this’ is not a constant expression
return Imp::CompositePreBasisFactory<IndexMergingStrategy, std::decay_t<decltype(childPreBasisFactory)>...>(std::forward<decltype(childPreBasisFactory)>(childPreBasisFactory)...);
^