There are two C ++ in Visual Studio. The .NET-based C ++ / CLI, although still very similar to C ++, does not follow the language pattern. In fact it is just used to make it easier to communicate .Net code with native C ++ code . Just to cite examples of difference it uses a garbage collector and does not allow multiple inheritance.
The native C ++ that is also present is compliant with ISO and is essentially the same as the GCC. Of course there are some implementation differences where the standard leaves this open, where there are clear extensions and where each one prioritizes. GCC may have some functions of the new standard ( C ++ 17 ) or even the last official ( C ++ 14 ) than Visual C ++ does not supports even more, will support , and vice versa. There are few things, but it is good to consult before using the latest news. The rest is the same. A code written for one should work on the other, if taken some due care.
Obviously, each one can have its own optimizations and functionalities as long as it interprets the default code and generates the same torque model meeting the requirements set in the standard. The tools available to each are quite different.
Benchmarking .
Understand What is a programming language, IDE, and compiler?