Meta: gcc 4.x support
I'm moving this here from #2 (closed) because that issue is and should remain closed and we were getting pretty off-topic. This could also be a wiki page. This is not really an issue but rather a documentation of the status-quo.
GCC 4.9.x is not able to compile relevant branches of quite a few modules now. 4.9.2 is the latest version that current Debian stable comes with. This should come as no surprise because we don't have a build bot with gcc 4.9.x.
- With 4.9.2 but not 4.9.3, you will get
.../dune/tnnmg/functionals/quadraticfunctional.hh:76:49: error: non-static data member declared ‘auto’ friend auto derivative(const AffineOperator& f) ^
and more such errors when compiling e.g. the nonlineargstest on the feature/new-tnnmg branch of dune-tnnmg. Update: This should be fixed with 9a2da3b0.
- With 4.9.2 and 4.9.3 you'll get
.../dune/solvers/common/algorithm.hh:195:3: error: body of constexpr function ‘constexpr auto Dune::Solvers::Hybrid::Imp::integralRange(const Begin&, const End&, const Dune::PriorityTag<0ul>&) [with Begin = std::integral_constant<long unsigned int, 0ul>; End = long unsigned int]’ not a return-statement } ^
when compiling e.g. the nonlineargstest on the feature/new-tnnmg branch of dune-tnnmg. This appears to be a C++14 feature ("Relaxing requirements on constexpr functions ") missing from all versions of gcc 4.x. Update: This has been addressed, I believe, even though I do not know in which commit.
- With 4.9.2 and 4.9.3 you'll get the error
.../dune/typetree/nodeinterface.hh:109:27: error: template declaration of ‘constexpr const size_t Dune::TypeTree::staticDegree’ constexpr std::size_t staticDegree = StaticDegree<Node>::value; ^
when compiling e.g. the stokes-taylorhood example or the gridviewfunctionspacebasistest from the master branch of dune-functions. Update: This goes away if one uses the feature/no-variable-templates branch of dune-typetree.