- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm having an issue compiling a template class using a newer C++ compiler (going from Visual C++ 6.0 to Visual C++ 2015). All of the errors center around a handful of typedefs within the class. Here is a snippet of the header file:
template< class Type> class Vector { public: typedef Type* iterator; typedef const Type* const_iterator; typedef Type& reference; typedef const Type& const_reference; typedef size_t size_type; Vector(); Vector( size_type Size, const_reference Object = Type() ); ... private: VectorImpl<Type>* m_pImpl; }; template <typename Type> Vector<Type>::Vector() { m_pImpl = new VectorImpl<Type>(); }; template <typename Type> Vector<Type>::Vector(Vector<Type>::size_type Size, Vector<Type>::const_reference Object) { m_pImpl = new VectorImpl<Type>(Size, Object); };
When the compiler attempts to build the template method implementation it throws an error when encountering the typedef parameter (i.e. 'Vector<Type>::size_type Size') I get an 'C2988 unrecognizable template declaration/definition' error. In other instances I get an 'C2061 syntax error: identifier 'size_type'' error.
Is there a formatting issue or could there be a compatibility issue with using typedefs in a template class?
- Tags:
- CC++
- Development Tools
- Intel® C++ Compiler
- Intel® Parallel Studio XE
- Intel® System Studio
- Optimization
- Parallel Computing
- Vectorization
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jonathan,
What is the version of Intel compiler? Did the source code compile with MS compiler?
Thanks,
Viet

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page