auto as type template parameter in concept requirement clause

Viewed 68

Consider the following code:

template<typename T>
concept Rebindable = requires {typename T::template rebind<auto>;};

template<typename T>
struct rebindable
{
    template<typename U>
    using rebind = rebindable<U>;
};

template<typename T>
struct non_rebindable
{};

this code compiles fine on gcc and works as expected (Rebindable<rebindable</*a type*/>> is true, Rebindable<non_rebindable</*a type*/>> is false), however clang triggers 'auto' not allowed in template argument. I was wondering, is auto as template argument an (intentional or non-intentional) extension on gcc or a new feature that hasn't been implemented yet by clang?

0 Answers
Related