** After a few days... I would really appreciate some comment from Intel support staff on this one for the benefit of the user community. **

If you define a function-local variable, the value is placed on the stack and it is valid while program counter (EIP) is in the scope of that function, not before, not after. When variable is global it has visibility throughout the whole program lifetime. That may be related to the issue you are seeing.

Regarding response time, if you need fast answers then submit an issue with Premier Support along with a reproducible test case. This is user to user support forum with Intel engineers moderating and participating as much as they can. We all have a life outside of this forum.

std::vector < double > test3(256);
The debugger shows a crazy value for the size.. ( on Win32)
However, stepping into the std::vector code shows no issues, the size() function is working exactly as it should. Assigning elements to the vector shows no problems or exceptions.

I think this is simply a visual studio 2010 debugger display issue under Win32. The debugger tries to "understand" STL containers based on how they are represented in memory by Visual C++ ( not Intel C++). This may ( or may not!) be a subtle "compatibility" issue between Intel C++ 13.0 and VC++ when it comes to displaying variables.

Just a heads up -- there were past problems (aka bugs) in the way that Eigen uses the restrict keyword on structure members. The restrict keyword is honored by the compiler when objects are instantiated as stack variables, and the restrict keyword is not honored when objects are instantiated in a persistent scope (i.e. on the heap, or as global variables). In other words, bugs might appear in stack allocated objects that do not appear when objects are defined globally, or through the use of a new operator.