Ошибка C ++: аргументы шаблона по умолчанию не могут использоваться в шаблоне функции

Я пытаюсь понять, что означает значение = T () и как это исправить. Также функция является конструктором для класса.

template<typename T>
Accumulator<T>::Accumulator(const T& value = T())
{
total = value;
}

Это не компилирует следующие ошибки:

error: default argument given for parameter 1 of `Accumulator<T>::Accumulator(const T&)'
error: after previous specification in `Accumulator<T>::Accumulator(const T&)'

По сути, функция является конструктором для класса с аргументом по умолчанию, который устанавливает «total» частную переменную моего класса в «value», если ему присвоено значение для аргумента.

2

Решение

Вы должны указывать только параметр по умолчанию в объявлении функции в заголовке.

3

Другие решения


По вопросам рекламы [email protected]