A very simple program testing the STL implementations between Intel compiler on linux (Intel 18.0) and visual c++ on windows (MSVC 2015).
- Primarily, how to make linux fatal out/ crash the same way as windows (since i have a huge codebase). Technically i was expecting a signal 11 from linux, not to throw a garbage value everytime for whatever the size of vector i tested. 
- Can someone explain what is happening under the hood (memory allocation wise and their rules and if it is implementation/platform/compiler dependent).? Just for my understanding. 
'
#include "iostream"
#include "vector"
using namespace std;
int main(int argc,char* argv[])
{   
   vector<int> v;
   //v.resize(5);  (my bad, please ignore this, i was testing and posted incorrect version)
   cout<<"Initial vector size: "<<v.size()<<endl;
   for(int i=1;i<=5;++i)
   {
       v.push_back(i);
   }
   cout<<"size of vector after: "<<v.size()<<endl;
   for(int j=5;j>=0;--j) // Notice my upper bound.
   {
      cout<< "printing " <<v[j]<<std::endl;
   }
   return 0;
}
Both had no problems compiling as one can expect. Subsequently, Windows crashed with a nice message "vector subscript out of range" while linux threw some garbage value everytime and continued.
 
    