https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70543
--- Comment #2 from Oleg Endo <olegendo at gcc dot gnu.org> --- (In reply to Oleg Endo from comment #1) > > If the marked line is changed to > > static constexpr unsigned int value = calc<0> (); > > it compiles fine. However, if doing that "trick" in the bigger production code, there is some new error: c++/6.0.0/type_traits:868:48: error: constructor required before non-static data member for '...' has been parsed template<typename _Tp, typename = decltype(_Tp())> ^~~~