шаблон шаблона класса

Есть кусок кода взят из книги Джосатиса "Шаблоны С++" 2003 года.

template <typename T, template <typename ELEM> class C = std::vector>
struct B
{
  C<T> c;
};

Почему компилятор ругается на std::vector типа шаблон класса несовместим с параметр шаблона template C?

  1. Использую MS VisualStudio 2022
  2. Компилятор Стандарт ISO C++14 (/std:c++14)
  3. Версия SDK 10.0.22621.0

Ответы (1 шт):

Автор решения: Harry

Скорее всего у вас компилятор не поддерживает (или вы ему не разрешили) стандарт C++17.

Попробуйте пояснить ему, что у вас контейнер с двумя шаблонными параметрами:

template <typename T, 
          template <typename E, 
                    typename=std::allocator<E>> 
          class C = std::vector>
struct B
....
→ Ссылка