Nasz wykładowca powiedział nam, że przy wypełnianiu naszych zadań możemy używać tylko standardów C++ 98/C99, podając poprawne flagi do kompilatora, możemy zapewnić, że nie łamiemy tej reguły.Czy to prawda, że duże firmy wbudowane są "zmuszone" do używania starych standardów/kompilatorów?
Rozumiem, że tak jest, więc ludzie mogą uczyć się "prawdziwego" C lub C++, w zależności od tego, co wybiorą, i wykonywać tę umiejętność bez jakiejkolwiek pomocy z nowych funkcji językowych (nie zgadzam się, ale kim jestem, aby dyskutować) .
Prosząc mój wykładowca dlaczego ta zasada odpowiedział (po wiedząc, że nie jestem zadowolony z powyższym odpowiedź): „ponieważ duże firmy, takie jak stare ASML, które współpracują z urządzeniami wbudowanymi mają stare codebases że (będzie) może przerwa po przełączeniu na C11/C++ 11).
Prosiłem o konkretny świat/praktyczny przykład kodu, który kompiluje się zarówno w C99/C11 (lub C++ 98/C++ 11) , jest zgodny ze standardem (C99/C++ 98), ale zachowuje się bardzo różnie, gdy jest w formie binarnej - podsumowując pytanie nie zostało odebrane. Jeśli stwierdzenie, że firmy trzymają się starych kompilatorów i standardów jest prawdziwe, może ktoś dostarczy taki kawałek kodu, który chcę zobaczyć sam?
[tutaj] (https://www.youtube.com/watch?v=zBkNBP00wJE) rozmawia ktoś, kto pisze grę Commodore 64 w C++ 17. Więc nie, stwierdzenie to nie jest w ogóle prawdziwe. Jeden * może * pisać oprogramowanie wbudowane w nowoczesnym języku. –
Jeśli wszystkie twoje biblioteki są napisane w C++ 98 - będzie to dużo kosztowało migrowanie ich wszystkich, a nie ma zbyt wielkiego zysku. Z tego powodu przedsiębiorstwa, które istnieją od kilku lat, są zmuszane do tego z przyczyn ekonomicznych. – UKMonkey
Tak, z tego, co wiem, firmy używają gcc, clang lub dowolnego popularnego kompilatora, a jeśli mają "unikalną" platformę, jedynym ograniczeniem są możliwości kompilatorów (ponieważ nie ma nowych kompilatorów, które obsługują nowsze standardy, i nowe standardy C++ na celu 100% ocmpatibility do tyłu) – Gizmo