The following was possible in v9: template<auto N> struct A { constexpr auto size() const { return N; } }; template<typename A> void foo(const A& a) { constexpr auto s = a.size(); } int main() { A<10> x1; foo(x1); } In v10 this is rejected. Looks like a bug?