Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Visual C++ standards compliance [closed]

I was wondering if, and to what degree, does Microsoft's Visual C++ compiler conform to the current C (C90/C99) and C++ (ISO/IEC 14882:2003) standards. Unfortunately I'm only able to find partial information on the subject, I may be looking at all the wrong places.

Any pointers to related resources are much appreciated. Thanks in advance.

Edit: Since is looks like this is a most touchy subject, I'd be content with a yes/no answer on whether MSVC wholly conforms to C90...I've come to the understanding that this is not the case for C99 (naturally), and I still have no clue about C++..

Edit2: Thanks to everyone for their answers. I've accepted Mr. Rushakov's answer but upvoted all relevant answers, which were all helpful.

like image 752
Michael Foukarakis Avatar asked Oct 21 '09 10:10

Michael Foukarakis


People also ask

Is Visual C necessary?

We don't recommend that you delete any Visual C++ redistributable, because doing so could make multiple applications on your computer stop working. Given how little space they take up and how broadly they are used, it doesn't seem worth the hassle to mess with your current ecosystem of standard library files.

What C standard does Visual Studio use?

MSVC C/C++ compiler reference - Visual Studio.

Is C supported in Visual Studio?

The Microsoft C/C++ for Visual Studio Code extension supports IntelliSense, debugging, code formatting, auto-completion. Visual Studio for Mac doesn't support Microsoft C++, but does support . NET languages and cross-platform development.


1 Answers

Perhaps MSDN's Nonstandard Behavior page for Visual C++ will enlighten you? Make sure you look at the version you're most interested in (the box on the right-hand side).

Since MSDN's links change all the time (and who knows why), here's the main content from the page on VS2008, so when the link breaks and someone comes across this answer, they can Google and find the correct page:

Nonstandard Behavior

The following topics are some of the known places where the Visual C++ implementation of C++ does not agree with the C++ standard. The section numbers refer to section numbers in the C++ standard.

  • Compiler Limits
  • 10.3 (Paragraph 5) Covariant Return Types
  • 14 export Keyword on a Template
  • 14.6.2 Dependent Names
  • 15.4 Function Exception Specifiers
  • 16.3.2 The # Operator
  • 21.1.1 Character Traits Requirements
  • Storage Location of Objects
like image 91
Mark Rushakoff Avatar answered Oct 31 '22 19:10

Mark Rushakoff