Co zrobić żebym mógł pod #ubuntu ( #linux dla zasięgu, ez) pisać w c++ 20? mam gcc w wersji 10.3, ale jak na vs code wypisze _cpluplus żeby wiedziec w jakiej wersji pisze, to wychodzi że pisze dalej w 14, i nie rozpoznaje featurow z 20 (jak chociażby std::shiftleft) #cpp #naukaprogramowania #programowanie
@RedveKoronny: ogarnij sobie jakiś system do zarządzania projektem jak CMake. Tam ustawiasz wersję za pomocą flagi. Vscode z odpowiednim pluginem sam ogarnie wszystko i będziesz miał jedno źródło prawdy pod postacią CMake, niezależnie, czy będziesz budował z terminala, vscoda czy np. jakiegoś CI
@card_man: ta z _cplusplus, ale dalej nie mam dostępu ani do shiftleft, ani do bit_cast, o wszystkim ostrzega vs code że nie ma czegos takiego, i terminal nie rozpoznaje
@card_man: co więcej, po wypisaniu w terminalu działa, a vscode dalej nie ogarnia i nie pozwala ani skompilowac, ani nic nie podpowiada bo nie istnieje shift_left w jego mniemaniu
@RedveKoronny: ok, to może przez to że masz nowsze gcc, ja mam 9 i przy fladze c++20 mam taki błąd: g++: error: unrecognized command line option '-std=c++20'; did you mean '-std=c++2a'? a z c++2a nie znajduje mi tego shift_left
mam gcc w wersji 10.3, ale jak na vs code wypisze _cpluplus żeby wiedziec w jakiej wersji pisze, to wychodzi że pisze dalej w 14, i nie rozpoznaje featurow z 20 (jak chociażby std::shiftleft)
#cpp #naukaprogramowania #programowanie
g++ -std=gnu++11ale nie wiem czego tam dokładnie używasz ;)
po prostu w terminalu:
g++ -std=c++20 main.cpp -o main
?
to jest c++20? bo widze że to jakies c++2A
__cplusplus?-std=gnu++2amam gcc 9.3.0
no i ja odpalam z flagą -std=c++20, bo to gcc mi nie działało
#include#include
#include
int main()
{
std::vector n;
std::shift_left(n.begin(),n.end(),1);
}
i z flagą c++20 działa
g++: error: unrecognized command line option '-std=c++20'; did you mean '-std=c++2a'?a z c++2a nie znajduje mi tego shift_left