На vs2005 все в порядке, но на vs2013 не работает. У меня есть код:C++ шаблоны, портирование с vc2005 на 2013
template <
typename _path_builder,
typename _vertex_allocator
>
struct CBuilderAllocatorConstructor {
template <template <typename _T> class _vertex>
class CDataStorage :
public _path_builder::CDataStorage<_vertex>,
public _vertex_allocator::CDataStorage<typename _path_builder::CDataStorage<_vertex>::CGraphVertex>
{
public:
typedef typename _path_builder::CDataStorage<_vertex> CDataStorageBase;
typedef typename _vertex_allocator::CDataStorage<
typename _path_builder::CDataStorage<
_vertex
>::CGraphVertex
> CDataStorageAllocator;
typedef typename CDataStorageBase::CGraphVertex CGraphVertex;
typedef typename CGraphVertex::_index_type _index_type;
public:
IC CDataStorage (const u32 vertex_count);
virtual ~CDataStorage();
IC void init();
};
};
Но после того, как портирование на против 2013 года я получил сообщение об ошибке: на линии typedef typename _path_builder::CDataStorage<_vertex> CDataStorageBase;
ошибка C2143: синтаксическая ошибка: отсутствует «» перед „<“ что произойдет ?
EDIT: спасибо всем за ответ, я все исправил
спасибо за ответ, я все исправил – user3167902