[multi-array] compiler errors with visual studio 2012

Hello, have this c++ example which compiles with Visual Studio 2010 but with Visual Studio 2012 I got this compiler errors: 1>------ Build started: Project: MultiArrayDemo, Configuration: Debug Win32 ------ 1> MultiArrayDemo.cpp 1>d:\sandbox\multiarraydemo\multiarraydemo\multiarraydemo.cpp(11):error C2059: syntax error : '<' 1> d:\sandbox\multiarraydemo\multiarraydemo\multiarraydemo.cpp(25) : see reference to class template instantiation 'Data<T>' being compiled 1>d:\sandbox\multiarraydemo\multiarraydemo\multiarraydemo.cpp(11):error C2238: unexpected token(s) preceding ';' ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== The example uses the boost 1.53 version. Here is the example code: #include "stdafx.h" #include <boost/multi_array.hpp> const int rows = 3; const int cols = 5; template<class T> struct Data { typedef boost::multi_array<T,2> data_type; typedef typename data_type::array_view<1>::type view_type; //here is the first error typedef typename data_type::index_range range; Data() :A(boost::extents[rows][cols]) { double tmp[] = {1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0}; A.assign(tmp,tmp+ (rows * cols)); } data_type A; }; int _tmain(int argc, _TCHAR* argv[]) { Data<double>* data = new Data<double>(); Data<double>::view_type myView = data->A[boost::indices[0][Data<double>::range()]]; delete data; return 0; } Does anybody know how to solve this problem? Best regards and thank you in advance Niklas
participants (1)
-
nfarnsworthļ¼ web.de