Działający kompilator c++20 pod Windows skąd ściągnąć

0

Probowałem kompilatora g++ (gcc windowsowego z minGW) i clanga także Mingw z codebocksa - wspierają standardy c++ 11-17 ale żaden nie wspiera c++20 na Windows - wiem że na linuksie jest możliwość częściowego wsparcia, ale pod Windows nie. Bardzo proszę o link do działającego kompilatora pod Windows. Z gory dzięki. Mam książkę do c++20 - niestety nie mogę skompilować żadnego programu z niej. W nowym standardzie nie ma już dyrektywy #include a jest zamiast niej import, więc zmienianie każdego przykładu z książki mnie trochę męczy. Tylko proszę nie odsyłać mnie do wikipedii bo ta bzdury podaje.

2

A których wersji MinGW próbowałeś?

Anyway, pobaw się na WSL-u.

3

Wg. dokumentacji moduły powinny być wspierane w najświeższych wersjach MSVC https://en.cppreference.com/w/cpp/compiler_support

0

MinGw nie da się ściągnąć nowego - ostatnia wersja, ktorą udało mi się ściągnąć była z 2018r. więc wspierała tylko c++17 - clanga ściągnąłem najnowszego jednak parametr -std=2a (czy jakoś tak) nic nie kompiluje. Czy MSVC to Visual Studio? Probowałem Visual Studio - ale nie mam tyle miejsca na dysku aby go trzymać 8GB- poza tym nie potrafiłem w nim uruchomić kompilatora więc odinstalowałem. gcc najnowszy tylko na linuksie teraz działa. Dokumentacją też się posiłkowałem - ale nie udało mi się ściągnąć działającego kompilatora - straciłem na szukanie cały dzień - a tu proszę tylko o linka do downloadu

2

Jeżeli masz jakieś trywialne przykłady z książki do skompilowania, nie musiałbyś nic ściągać, mógłbyś użyć wandboxa -https://wandbox.org/. Przynajmniej dowiedziałbyś się czy wsparcie w clang i gcc jest wystarczające do Twoich potrzeb przed bawieniem się w instalację lokalnie.

A jeśli obecne wersje nie będą dla Ciebie wystarczające to będziesz się musiał z MSVC przeprosić, bo dokumentacja twierdzi, że jako jedyny ma pełne wsparcie standardu odnośnie modułów. Jak to wygląda w praktyce to nie wiem, ale osobiście polecam MSVC tylko w ostateczności, jak nie ma innego wyjścia, a wygląda na to, ze tutaj nie ma innego wyjścia.

1

Probowałem Visual Studio - ale nie mam tyle miejsca na dysku aby go trzymać 8GB- poza tym nie potrafiłem w nim uruchomić kompilatora więc odinstalowałem.

nie bardzo rozumiem co masz na myśli. Instalujesz visual studio. Przy instalacji pyta cię jakie moduły. W configuration property podzakladka languages a później c++ powinno być C++ language standard. https://www.learncpp.com/images/CppTutorial/Chapter0/VS2019-Project-Language-min.png
a jak nie to msvc z Lini komend. Z resztą co ty masz za dysk ja nie masz miejsca na 8gb.

nowym standardzie nie ma już dyrektywy #include

https://en.cppreference.com/w/cpp/keyword
zajrzałem w standard i nie potwierdza się to co mówisz.

1

Cygwin ma aktualnie GCC w wersji 10.2.0 i z tego co widzę przyjmuje parametr --std=c++20

0

Niestety do Visual Studio, żeby z wersji Community korzystać, po 30 dniach, wymagane jest stworzenie konta i rejestracja; żeby odblokować sobie program - więc ja za takie coś podziękuję - poczekam na działający kompilator MinGW lub inny

0
  1. Instalujesz Ubuntu przez WSL (Windows Linux Subsystem)
  2. Instalujesz gcc
  3. Profit!

Niektóre IDE potrafią nawet spiąć się ze środowiskami z WSL, patrz np. https://www.jetbrains.com/help/clion/how-to-use-wsl-development-environment-in-product.html#wsl-tooclhain

1

GCC jak się zdaje nie łyka jeszcze modułów - sam chciałem poeksperymentować z nowym featurem na 11-stce pod Linuksem, ale nie udało mi się nic skompilować, a że prędko się to pewnie nie rozpowszechni, póki co jesteśmy ciągle skazani na stare pliki nagłówkowe.

...a jak chciałem sobie poeksperymentować z range'ami, to się okazało, że dostępna jest jedynie garstka widoków (bo reszta jest dopiero w planach do stopniowego włączania w standard, szczegóły tutaj) i trzeba się znowu było wrócić do range-v3...

0

Z ciekawości zapytam: Czy udało się komuś skompilować nowy import <iostream>; na Visual Studio najnowszym bo ponoć na nim standard c++20 w pełni działa

0

Link podałem ...

0

@Czysty kod:
U mnie VS2019 składnię zdaje się rozumieć (po zmianie na C++20 we właściwościach projektu), ale krzyczy że nie ma takiego nagłówka.
Możliwe że nie mam czegoś zainstalowanego.

Bez tytułu.png

2

@Czysty kod: Nie pomyślałem o tym wcześniej, ale jesteś pewien, że standard C++20 zawiera w ogóle definicje modułów dla standardowej biblioteki? Biorąc pod uwagę schemat pracy komitetu standaryzacyjnego, to modułowe std powinno pojawić się najwczesniej w C++23.

0

Nie wiem jaka to książka, ale...
https://stackoverflow.com/questions/64877559/cant-use-iostream-as-module-in-c20-visual-studio
tl;dr @several może mieć rację. Możesz kombinować albo po prostu pozmieniaj to na #include i miej to głęboko.

0

https://stackoverflow.com/questions/57300495/how-to-use-c20-modules-with-cmake

  1. W cmake jest coś wysoce eksperymentalnego dla modułów
  2. Jeden użytkownik użył build2 https://build2.org/

oczywiście trzeba mieć też tam jakiś odpowiedni kompilator. Ogólnie jak ktoś się uczy C++ to z rok bym poczekał z używaniem C++20. Za jakiś czas dojrzeje i będzie w miarę bez problemowe. Na razie c++17 i gitara.

0

@_13th_Dragon: probowałem ten kompilator z twojego linka ale także importu nie obsługuje

2

Według tego:
C++ compiler support - cppreference.com

C++20 feature  Paper(s) GCC Clang MSVC Apple Clang
Modules P1103R3 11 (partial) 8 (partial) 19.0 (2015)* (partial) 19.10* (TS only) 19.28 (16.8)* 10.0.1* (partial)

Wsparcie jest tylko częściowe, wiec pewne rzeczy mogą nie działać.
Doczytaj te gwiazdki, by dowiedzieć się co nie działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1