I've happily written C++ project in Visual Studio 2013. I did not use any non-standard extension explicitly, though when I moved to GCC 4.8 in Ubuntu I've received many errors, because I used non-standard extensions implicitly. For example:
#include <vector>
template<class T>
class A
{
public:
using MyVector = std::vector<T>;
};
template<class T>
class B : public A<T>
{
MyVector vec;
};
This code(here is link) is legal with default settings of VS2013, though in GCC: error: 'MyVector' has not been defined
, and it is conformant with ISO.
So my question is: if I'm 100% sure, that my code should be ISO-conformant, can I force visual studio to follow ISO C++ standard strictly?