https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67248
Bug ID: 67248 Summary: Variable template cannot be used as dependent name Product: gcc Version: 5.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: barry.revzin at gmail dot com Target Milestone: --- The following code: struct Value { template<class T> static constexpr T value = 0; }; template<typename TValue> struct Something { void foo() { static_assert(TValue::template value<int> == 0, ""); // error } }; int main() { Something<Value>{}.foo(); } fails to compile with: main.cpp:11:51: error: 'template<class T> constexpr const T Value::value<T>' is not a function template Accessing Value directly within foo() would compile: static_assert(Value::template value<int> == 0, ""); // OK