[Bug c++/67248] New: Variable template cannot be used as dependent name

barry.revzin at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Aug 17 12:51:00 GMT 2015


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



More information about the Gcc-bugs mailing list