Jaki jest właściwy sposób używania opartego na zakresie C ++ 11 for? Jakiej składni należy użyć? for (auto elem : container)lub for (auto& elem : container)lub for (const auto& elem : container)? A może jakiś
Jaki jest właściwy sposób używania opartego na zakresie C ++ 11 for? Jakiej składni należy użyć? for (auto elem : container)lub for (auto& elem : container)lub for (const auto& elem : container)? A może jakiś
Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2 To jest przykład fragmentu kodu C ++ 11: auto text = std::unique_ptr<char[]>(new char[len]); Edytor Eclipse narzeka na: Function 'unique_ptr' could not be resolved Kompilacja Makefile działa dobrze. Jak sprawić, by Eclipse przestał narzekać na tego...
Czy można przekazać funkcję lambda jako wskaźnik funkcji? Jeśli tak, to muszę robić coś niepoprawnie, ponieważ pojawia się błąd kompilacji. Rozważ następujący przykład using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int...
Czasami twierdzi się, że C ++ 11/14 może zwiększyć wydajność, nawet po prostu kompilując kod C ++ 98. Uzasadnienie jest zwykle zgodne z semantyką ruchu, ponieważ w niektórych przypadkach konstruktory wartości są generowane automatycznie lub są teraz częścią STL. Teraz zastanawiam się, czy te...
Może to być przykład: #include <iostream> using namespace std; int main() { cout << "Hola, moondo.\n"; } Zgłasza błąd: gcc -c main.cpp gcc -o edit main.o main.o: In function `main': main.cpp:(.text+0xa): undefined reference to `std::cout' main.cpp:(.text+0xf): undefined reference to...
Każdy standardowy kontener ma metodę begini enddo zwracania iteratorów dla tego kontenera. Jednak C ++ 11 najwyraźniej wprowadził wolne funkcje o nazwie std::begini std::endktóre wywołują funkcje begini end. Zamiast pisać auto i = v.begin(); auto e = v.end(); piszesz auto i =...
Jeśli mam zmienną wewnątrz funkcji (powiedzmy, dużą tablicę), czy sens ma deklarowanie jej jednocześnie statici constexpr? constexprgwarantuje, że tablica jest tworzona w czasie kompilacji, więc czy staticbyłaby bezużyteczna? void f() { static constexpr int x [] = { // a few thousand elements...
Dzięki nowemu standardowi istnieją nowe sposoby robienia rzeczy, a wiele z nich jest ładniejszych niż stare sposoby, ale stary sposób jest nadal w porządku. Oczywiste jest również, że nowy standard nie jest oficjalnie bardzo przestarzały, ze względu na kompatybilność wsteczną. Pozostaje więc...
Dlaczego funkcja odwrotna dla std::listklasy w standardowej bibliotece C ++ ma liniowe środowisko wykonawcze? Sądzę, że dla podwójnie powiązanych list funkcją odwrotną powinna być O (1). Odwrócenie podwójnie połączonej listy powinno po prostu obejmować zmianę wskaźników głowy i...
Umieściłem swoje umiejętności C ++ na półce kilka lat temu i wydaje się, że kiedy znów ich potrzebuję, krajobraz się zmienił. Mamy teraz C ++ 11 i rozumiem, że nakłada się on na wiele funkcji Boost. Czy jest jakieś podsumowanie, gdzie leżą te nakładki, które biblioteki Boost staną się starsze,...
[dcl.attr.noreturn] podaje następujący przykład: [[ noreturn ]] void f() { throw "error"; // OK } ale nie rozumiem, o co chodzi [[noreturn]], ponieważ typ zwracanej funkcji już jest void. Jaki jest sens tego noreturnatrybutu? Jak ma być
Zastanawiam się, dlaczego cbegini cendzostały wprowadzone w C ++ 11? Jakie są przypadki, gdy wywołanie tych metod różni się od stałych przeciążeń begini
Mam ten kod, który nie działa, ale myślę, że cel jest jasny: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A...
Chcę mieć static const chartablicę w mojej klasie. GCC narzekało i powiedziało mi, że powinienem skorzystać constexpr, chociaż teraz mówi mi, że to niezdefiniowane odniesienie. Jeśli ustawię tablicę jako nie będącą członkiem, wówczas się kompiluje. Co się dzieje? // .hpp struct foo { void bar();...
Jakie są powody istnienia std::decay? W jakich sytuacjach std::decayprzydaje
Wraz z nadejściem nowego standardu (i części już dostępnych w niektórych kompilatorach) nowy typ std::unique_ptrma być zamiennikiem std::auto_ptr. Czy ich użycie dokładnie się pokrywa (więc mogę dokonać globalnego wyszukiwania / zamiany w moim kodzie (nie żebym to zrobił, ale gdybym to zrobił)),...
Przeczytałem i słyszałem, że C ++ 11 obsługuje Unicode. Kilka pytań na ten temat: Jak dobrze standardowa biblioteka C ++ obsługuje Unicode? Robi std::string robi to, co powinien? Jak z tego korzystać? Gdzie są potencjalne problemy?
Ta odpowiedź @R. Martinho Fernandes pokazuje, że idiom bezpieczny jest przestarzały w C ++ 11, ponieważ można go zastąpić prostym explicit operator bool() const; zgodnie ze standardowym cytatem w odpowiedzi §4 [conv] p3: Wyrażenie e można domyślnie przekonwertować na typ Twtedy i tylko wtedy,...
Jak usunąć z mapy podczas iteracji? lubić: std::map<K, V> map; for(auto i : map) if(needs_removing(i)) // remove it from the map Jeśli map.erasego użyję, unieważni
Używając C ++ 11, Ubuntu 14.04, domyślnego łańcucha narzędzi GCC . Ten kod nie działa: constexpr std::string constString = "constString"; błąd: typ 'const string {aka const std :: basic_string}' zmiennej constexpr 'constString' nie jest dosłowny ... ponieważ ... 'std :: basic_string' ma...