clang ++ не принимает использование параметра шаблона шаблона при использовании CRTP

Получение ошибок компиляции при попытке вызвать конструктор базового класса в производном списке инициализации при использовании параметра шаблона шаблона с CRTP.

Проблема может быть воспроизведена с помощью этого фрагмента кода:

template 
struct base
{
};

template 
struct derived : public base
{
    derived()
        : base()
    { }
};

Сообщение об оскорбительной ошибке:

bug.cpp:10:16: error: template argument for template template parameter must be a class template or type alias template
        : base()
               ^
bug.cpp:10:11: error: expected class member or base class name
        : base()
          ^
bug.cpp:10:11: error: expected '{' or ','
3 errors generated.

Эта проблема возникает только в clang (3.4), а не в g ++ (4.8, 4.7, 4.6). Я'm также компилируется с -std = c ++ 11.

Это первый раз, когда янам нужно было использовать CRTP с параметром шаблона шаблона. Я делаю это хорошо, и этопроблема с clang ++ или нет?

В последнее время мы стали доверять сообщениям об ошибках clang ++ больше, чем g ++!

Ответы на вопрос(1)

Ваш ответ на вопрос