3 ms·
At least parts of it are essentially developed this way: C++14's features were implemented in clang while the standard was still in development (if memory serve
by Kristine1975 11y ago
At least parts of it are essentially developed this way: C++14's features were implemented in clang while the standard was still in development (if memory serves) and several of its main programmers are members of the standards committee. The module system that's been proposed (for C++1z?) has been implemented in clang as well. Since clang is open source, it could count as a reference implementation ;-)
- arximboldi 11y agoIn fact, the problem with having one single "reference implementation", like in Python, is that other implementations never get to be "compliant enough". The situation in C++ is saner, since both GCC and Clang are moving the standard forward, and together make sure that the standard can accept multiple valid implementations and code tends to be truly portable. The problem is really simply that Microsoft was never interested, at least until very recently, to have a truly standards compliant compiler.
- Kristine1975 11y ago>The problem is really simply that Microsoft was never interested, at least until very recently, to have a truly standards compliant compiler. I think Microsoft neglected C++ over .Net before suddenly changing their minds and deciding to support C++ more. VS2010 was one of the first compilers (even before gcc/clang) to support parts of the preliminary C++0x standard (e.g. lambda functions). But when the final standard was released they fell behind in implementing it.
- bstamour 11y ago> VS2010 was one of the first compilers (even before gcc/clang) GCC supported C++0x features back when they thought the standard would be released before 2010. Hence the 0x, not 1x. I remember using the `-std=c++0x` flag back in 2008, when I first took a course on C++, which is a few years before VS2010.
- jcranmer 11y agoI don't think it's that they weren't interested as much as it was that the team they had was relatively small and their compiler needed a massive refactoring to get there. MSVC never even built an AST for processing!