Ошибка компиляции пользовательского контейнера c ++

0

Я пытаюсь написать контейнер как

 template <typename T, typename A = std::allocator<T> >    
 class circular_dlist{
     ....
     public:

     class iterator{ 
       ....
     };

     void insert(T& val);
 };

В.cpp файле, когда я определяю метод insert() как:

template <typename T, typename A = std::allocator<T> > 
void circular_dlist<T, A>::insert(T& val){
}

Я получаю следующую ошибку:

error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11

Каков правильный синтаксис определения определения внешнего класса в таких случаях, если я не использую С++ 11?

  • 0
    То же решение, что и для аргументов по умолчанию для функций.
  • 1
    Вы почти наверняка не хотите его в .cpp файле. stackoverflow.com/questions/495021
Показать ещё 1 комментарий
Теги:
templates

1 ответ

0

Просто напишите

template <typename T, typename A> 
void circular_dlist<T, A>::insert(T& val){
}
  • 0
    Спасибо, что сработало !!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню