Today, serious people mock those who refuse to distribute a whole operating system along each program.
Clang 5 in a Docker container for C++17
61–69 of 69 posts
Re: Clang 5 in a Docker container for C++17
#62Earlier quoted context omitted.
> Apple keeps Clang up to date on macOS, Actually, not especially. The system compiler that ships with Xcode is still quite old and the libraries are quite out of date. For example, though the most recent Xcode finally added -std=c++17 it still lacks core library features like std::variant. I wish they could keep close to mainline but for whatever reason they can't.
No C++ compilers currently implemented the full C++17 standard at this time.
As far as compiler support goes, Clang supports all of C++17 except for P0522R0 which is a defect report (ambiguity in specification) so cannot be implemented as written. Ditto GCC.
However std::variant is a library entity, not a compiler entity, and indeed, the libraries are a bit behind. Neither GCC's nor LLVM's runtime library support the parallelism extensions and have other gaps in areas exotic (memory, unfortunately which I would like to use) and prosaic (filesystem, which though I'd like to use it as well don't really care about). But they have been solid on C++17 core functionality for quite a long time.
C++ isn't as important to Apple as Swift (or even, still, ObjC) and C++17 is pretty new, so one can hardly blame Apple for this, especially since it's so trivial to simply use another compiler.
Re: Clang 5 in a Docker container for C++17
#63Earlier quoted context omitted.
I just ran "pkg install llvm50" on FreeBSD. Easy, quick, and noninvasive; it's not like installing another compiler is going to trash your system, you still have to take action to use it in place of the default. Likewise on Linux, you've always been able to install multiple compilers, and I've never had a problem with that in the two decades I've been doing it. I can see containers are sometimes useful and/or a conve…
I find your example of installing a package to be somewhat amusing. The fact that one can install a package in some OS means that somewhere, one or more people sat down and wrote a recipe for building and packaging it, and then hopefully performed some minimal QA on the final product to make sure it actually works. This is not trivial, particularly not if multiple versions of a compiler may need to coexist (because o…
Re: Clang 5 in a Docker container for C++17
#64Earlier quoted context omitted.
>MSVC supports C++17 features natively MSVC is the worst standard non-conforming C++ compiler in the current major compilers. I consider it MS C++-ish dialect compiler.
Not at all. Up to C++14 MSVC is actually better than gcc or clang, it's the only compiler which fully implements C11 with its safety Annex K. Only from C++17 on gcc and clang do have an advantage. http://en.cppreference.com/w/cpp/compiler_support The label worst std support would go to: EDG eccp, Intel C++, IBM XLC++, Sun/Oracle C++, Embarcadero C++ Builder, Cray, HP aCC [Collapse], Digital Mars C++ MSVC has very bad…
Really, it's garbage and it shouldn't be considered as C++ compiler.
Re: Clang 5 in a Docker container for C++17
#65Earlier quoted context omitted.
Not at all. Up to C++14 MSVC is actually better than gcc or clang, it's the only compiler which fully implements C11 with its safety Annex K. Only from C++17 on gcc and clang do have an advantage. http://en.cppreference.com/w/cpp/compiler_support The label worst std support would go to: EDG eccp, Intel C++, IBM XLC++, Sun/Oracle C++, Embarcadero C++ Builder, Cray, HP aCC [Collapse], Digital Mars C++ MSVC has very bad…
Well, MSVC supports those eye candy features yes. But it doesn't implement the C++ in the standard conforming way. Name lookup, overload resolution, and templates and practically everything is not implemented according to the spec. Really, it's garbage and it shouldn't be considered as C++ compiler.
Re: Clang 5 in a Docker container for C++17
#66Earlier quoted context omitted.
>MSVC supports C++17 features natively MSVC is the worst standard non-conforming C++ compiler in the current major compilers. I consider it MS C++-ish dialect compiler.
Not at all. Up to C++14 MSVC is actually better than gcc or clang, it's the only compiler which fully implements C11 with its safety Annex K. Only from C++17 on gcc and clang do have an advantage. http://en.cppreference.com/w/cpp/compiler_support The label worst std support would go to: EDG eccp, Intel C++, IBM XLC++, Sun/Oracle C++, Embarcadero C++ Builder, Cray, HP aCC [Collapse], Digital Mars C++ MSVC has very bad…
See eg here for MSFT explaining about the lack of even C99 conformance, as recently as November 2017: https://visualstudio.uservoice.com/forums/121579-visual-stud...
Meanwhile clang and gcc have had full C99 for a long time and have complete or near-complete support of C11, including optional parts.
Re: Clang 5 in a Docker container for C++17
#67Earlier quoted context omitted.
Not at all. Up to C++14 MSVC is actually better than gcc or clang, it's the only compiler which fully implements C11 with its safety Annex K. Only from C++17 on gcc and clang do have an advantage. http://en.cppreference.com/w/cpp/compiler_support The label worst std support would go to: EDG eccp, Intel C++, IBM XLC++, Sun/Oracle C++, Embarcadero C++ Builder, Cray, HP aCC [Collapse], Digital Mars C++ MSVC has very bad…
Do you have a reference for MSVC fully implementing C11? See eg here for MSFT explaining about the lack of even C99 conformance, as recently as November 2017: https://visualstudio.uservoice.com/forums/121579-visual-stud... Meanwhile clang and gcc have had full C99 for a long time and have complete or near-complete support of C11, including optional parts.
Re: Clang 5 in a Docker container for C++17
#68Earlier quoted context omitted.
Do you have a reference for MSVC fully implementing C11? See eg here for MSFT explaining about the lack of even C99 conformance, as recently as November 2017: https://visualstudio.uservoice.com/forums/121579-visual-stud... Meanwhile clang and gcc have had full C99 for a long time and have complete or near-complete support of C11, including optional parts.
Yes, that's true. Their overall C support is horrible, esp. up to C99. But they were still the first ones who implemented C11, which gcc and clang refuse to do.
Re: Clang 5 in a Docker container for C++17
#69Earlier quoted context omitted.
Do you have a reference for MSVC fully implementing C11? See eg here for MSFT explaining about the lack of even C99 conformance, as recently as November 2017: https://visualstudio.uservoice.com/forums/121579-visual-stud... Meanwhile clang and gcc have had full C99 for a long time and have complete or near-complete support of C11, including optional parts.
Yes, that's true. Their overall C support is horrible, esp. up to C99. But they were still the first ones who implemented C11, which gcc and clang refuse to do.
C11 is an extension of C99, so you can't have C11 support without C99.
But this nonwithstanding, MSVC doesn't appear have wide support for post-C99 C11 features either. For example, _Generic and t.
Are there any parts of C11 that MSVC supports aside from the Annex K functions, which is optional in C11? Annex K happens to be an extension proposed by Microsoft, so it's small wonder they implement it and it's quite disingenious to talk up microsoft for C11 support in this case. Other vendors didn't think it was very good, so didn't implement that optional feature.
And contrary to your claim, gcc and clang seem to have quite good C11 support.