Странная ошибка компиляции VC ++, C2244

Взгляните на этот кусочек кода:

template 
Pointer BinaryTree::GetBeginning() const
{
    return new BinaryTreeIterator(this,BinaryTreeIterator::Position::atBeginning);
}

Когда я пытаюсь скомпилировать его с помощью VSTS 2008, я получаю:

error C2244: 'BinaryTree::GetBeginning' : unable to match function definition to an existing declaration
see declaration of 'BinaryTree::GetBeginning'
2>        definition
2>        'Pointer BinaryTree::GetBeginning(void) const'
2>        existing declarations
2>        'Pointer BinaryTree::GetBeginning(void) const'

Декларация:

Pointer GetBeginning() const;

находится внутри класса. BinaryTree косвенно наследует от Collection, а BinaryTreeIterator косвенно наследует от Iterator, оба вложенных класса их соответствующих контейнеров.

Вы можете легко увидеть, что даже в отчете об ошибке и определение, и объявление идентичны. Здесь действительно что-то не так?

Я обнаружил, что Microsoft выпустилаисправление: "Определенный код шаблона не компилируется, и после установки Visual Studio 2005 с пакетом обновления 1 возникает ошибка C2244 ", Однако я не могНе найти ссылки на VSTS 2008.

Итак, сначала я хотел проверить, может ли кто-нибудь сразу заметить настоящую ошибку в коде, и еслис VS 's ошибка, кто-нибудь знает, является ли указанное исправление решением и актуально также для 2008 года.

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

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