Originally posted by pal666
View Post
Announcement
Collapse
No announcement yet.
GCC 5 Might Switch Its Default C Version To "GNU11"
Collapse
X
-
Why are GNU dialects the default instead of language standards? For projects using GNU extensions, switching the defaults to standards would make developers realise it, instead of inadvertently using them. Isn't it the main problem when switching from GCC to Clang? Also, a non-standard default may make it harder for beginners, and even allow worse (non-portable, broken,...) code to be written.
In the OpenGL area, a frequent complaint against NVIDIA is that their drivers are more permissive and do not strictly follow the specification. Couldn't GCC's defaults also be considered a vendor lock-in attempt?
Comment
-
Originally posted by kalrish View PostWhy are GNU dialects the default instead of language standards? For projects using GNU extensions, switching the defaults to standards would make developers realise it, instead of inadvertently using them. Isn't it the main problem when switching from GCC to Clang? Also, a non-standard default may make it harder for beginners, and even allow worse (non-portable, broken,...) code to be written.
In the OpenGL area, a frequent complaint against NVIDIA is that their drivers are more permissive and do not strictly follow the specification. Couldn't GCC's defaults also be considered a vendor lock-in attempt?
Comment
-
Originally posted by RahulSundaram View PostShow me where exactly MS claims they will only the latest language version and we will talk about who is making a fool of themselves after that.
Related/Off Topic: I've not been able to find the reference that bluntly states this, but Microsoft treats C as effectively obsolete. Here's something close to this sentiment:
Microsoft follows the C++ standard only. If that pulls in pieces of C99, then so will Microsoft. But no more than the minimum required by the C++ standard.
Comment
-
Originally posted by nslay View PostI don't think MS claims anything. But they do have a habit of supporting draft features in their compilers before they're even standardized. For example, VS 2010 has lambda expression support! Regardless, there is nothing like "-std=c++11" flag in Visual Studio. In fact, to my knowledge, there is no flag to force any particular language standard in Visual C++ with the compiler supporting as much as it is implemented to support
"*Because this is an experimental language feature, to enable it in a project you must add this element to your .csproj file to enable the "Experimental" language version"
Comment
-
Originally posted by RahulSundaram View PostLike you said, I have never seen them claim they will only support the latest implemented language. I don't think that is even feasible to do. Compilers including clang and gcc support draft features quite regularly as well. MS has a different way of introducing experimental features. For example
"*Because this is an experimental language feature, to enable it in a project you must add this element to your .csproj file to enable the "Experimental" language version"
The strongest example is lambda expressions in Visual Studio 2010 (because they're an actual change to the language syntax). Make a new project in VS 2010, write a lambda expression and compile it. No special settings needed.
Lambda expressions aren't the only example. VS 2010 pulls quite a few C++11 STL data structures into std as well (to be clear, but std, not std::tr1). Some existing STL data structures have C++11 behavior in VS 2010 too (like std::map::erase).
As for your blog post. Indeed, I could believe there are special experimental language settings in Visual C# (csproj is a Visual C# project file). But this is not the case for Visual C++ (at least ones that I'm familiar with, VS 2008, 2010, 2012 and 2013).
Oh I forgot:
VS 2010 supports rvalue references and move constructors (and helper functions like std::move) and has supported these features for production code (no special settings needed) before C++11 was finalized.
This is typical Microsoft behavior.Last edited by nslay; 08 October 2014, 08:52 PM.
Comment
-
Originally posted by pal666 View Postwrong. when new standard is backwards compatible, compiler support has to become available only in compiler which switched default.
Comment
Comment