Устранить синтаксическую ошибку «неожиданный идентификатор dmap» с visual studio express 2012

Возможный дубликат:
Где и почему я должен поставить ключевые слова «template» и «typename»?

Я собираю Палабос с визуальной студией 2012.
Я получаю следующую ошибку:

Предупреждение 1, предупреждение C4346: ‘plb :: ExtractDynamicsChainFunctional2D :: DMap’: зависимое имя не является типом c: \ users \ max \ desktop \ drawing \ c ++ \ palabos \ src \ dataprocessors \ metastufffunctional2d.hh 100 1 Рисование

Ошибка 2 ошибка C2061: синтаксическая ошибка: идентификатор ‘DMap’ c: \ users \ max \ desktop \ drawing \ c ++ \ palabos \ src \ dataprocessors \ metastufffunctional2d.hh 100 1 Рисование

Код, вызывающий эту ошибку:

/* ******** ExtractDynamicsChainFunctional2D ************************************ */
template<typename T, template<typename U> class Descriptor>
ExtractDynamicsChainFunctional2D<T,Descriptor>::ExtractDynamicsChainFunctional2D (
ExtractDynamicsChainFunctional2D<T,Descriptor>::DMap const& dynamicsMap_,
pluint maxChainSize_ )
: dynamicsMap(dynamicsMap_),
maxChainSize(maxChainSize_)
{ }

Мои знания с ++ очень ограничены. Может кто-нибудь объяснить, что вызывает эту ошибку, и как я могу это исправить.

0

Решение

Ошибка означает: ExtractDynamicsChainFunctional2D<T,Descriptor>::DMap по умолчанию не тип и не может быть использован как таковой. Если вы хотите, чтобы он был распознан как тип, вы должны поставить typename перед ней.

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

3

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

Других решений пока нет …

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