mboost-dp1
Intel goes LLVM
- Forside
- ⟨
- Forum
- ⟨
- Tagwall
Nu venter vi bare på at Microsoft dropper deres egen C++ compiler (MSVC) og også switcher to Clang/LLVM.
C++20 kompileret med LLVM gør jo næsten C++ til en moderne programmeringsplatform! Og Clang har jo næsten fejlbeskeder der faktisk kan læses af et menneske uden at gætte!
C++20 kompileret med LLVM gør jo næsten C++ til en moderne programmeringsplatform! Og Clang har jo næsten fejlbeskeder der faktisk kan læses af et menneske uden at gætte!
Jo, lidt https://docs.microsoft.com/en-us/cpp/build/clang-s...arne_v (6) skrev:#5
Er clang ikke allerede supporteret af VS ved siden af msvc++?
Men ikke 100%. F.eks. er fejlrapporteringen er ikke fuldt integeret
#16
Hvis det er poolen af ekspertise som driver udviklingen ja.
Men jeg tror mere på at det er konkurrencen som driver udviklingen.
Der var fuld fart på GCC dengang sidst i 80erne først i 90erne, da de skulle konkurrere med andre *nix compilere. Da de havde vundet, så gik udviklingen i stå. Der kom gang igen da EGCS forken dukkede op. Efter at EGCS mergede tilbage ind i GCC gik udviklingen lidt i stå. Nu er der gang i GCC igen efter at LLVM giver dem konkurrence.
Hvis der er en 3-4 compilere, så er der ikke nogen som slapper af. Der er hele tiden noget der skal catches up på.
Hvis der er 2 compilere så går det ikke helt i stå men der kan godt blive lidt hver sin niche mentalitet.
Og med kun 1 compiler så er der ikke meget incitament til at forbedre.
Hvis det er poolen af ekspertise som driver udviklingen ja.
Men jeg tror mere på at det er konkurrencen som driver udviklingen.
Der var fuld fart på GCC dengang sidst i 80erne først i 90erne, da de skulle konkurrere med andre *nix compilere. Da de havde vundet, så gik udviklingen i stå. Der kom gang igen da EGCS forken dukkede op. Efter at EGCS mergede tilbage ind i GCC gik udviklingen lidt i stå. Nu er der gang i GCC igen efter at LLVM giver dem konkurrence.
Hvis der er en 3-4 compilere, så er der ikke nogen som slapper af. Der er hele tiden noget der skal catches up på.
Hvis der er 2 compilere så går det ikke helt i stå men der kan godt blive lidt hver sin niche mentalitet.
Og med kun 1 compiler så er der ikke meget incitament til at forbedre.
Claus Jørgensen (25) skrev:#23
heh, så jeg har kodet mere C++ på arbejde end dig? det kommer lidt som en overraskelse
Ja. 1 linie er nok til det.
:-)
Det er ikke fordi at jeg ikke har brugt C++. Jeg har brugt en del C++:
- opgave på universitetet omkring 1990
- open source projekter (heriblandt et sen-90'er meget ambitiøst "cross platform super bibliotek" projekt)
- spørgsmål på eksperten.dk
- eksempler til mine artikler
En hurtig optælling på min PC siger ca. 90000 linier kode.
Claus Jørgensen (26) skrev:Endnu en grund til at folk burde brugte det nyeste, i så fald!arne_v (24) skrev:#22
C++ 98 kode bør compile med en C++ 20 compiler, da 11, 14, 17 og 20 næsten ingenting har fjernet.
register keyword er gone, men det har aldrig været bruget meget i C++.
De typiske problemer ved opdatering må være:
- ikke gyldig C++ kode som bare blev accepteret af den gamle compiler men hvor en nyere compiler korrekt flagger koden ikke gyldig C++
- undefined behavior kode som med den gamle compiler tilfældigvis virkede men som med en nyere mere optimerende compiler ikke virker
https://en.wikipedia.org/wiki/C%2B%2B11#Features_r...
https://en.wikipedia.org/wiki/C%2B%2B17#Removed
https://en.wikipedia.org/wiki/C%2B%2B20#Removed_fe...
bør ihvertfald ikke give nogen problemer.
Stort set ingen har brugt register keyword i C++ (eller i C kode der er mindre end 30 år gammel).
Trigraphs? Stort set ingen har brugt dem i hverken C eller C++ nogensinde. (ja nogen må have brugt dem siden IBM forsvarede dem, men jeg har aldrig hørt om nogen som har brugt dem)
arne_v (28) skrev:Trigraphs? Stort set ingen har brugt dem i hverken C eller C++ nogensinde. (ja nogen må have brugt dem siden IBM forsvarede dem, men jeg har aldrig hørt om nogen som har brugt dem)
Dem er jeg godt nok heller aldrig stødt på.
Prøvede lige digraphs og trigraphs med min lokale gcc:
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hallo fra %s (1)\n", argv[0]); // Virker som forventet
printf("Hallo fra %s (2)\n", argv<:0:>); // Virker(!)
printf("Hallo fra %s (3)\n", argv??(0??)); // Virker kun med -trigraphs
return 0;
}
---
$ gcc --version
gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0
Endnu en faldgrube mht. parsing at være opmærksom på i C. Og endnu en åben dør mht. at obfuskere C kode, dejligt ...
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.