c++-faq

Co to jest operator <=> w C++?

Kiedy próbowałem dowiedzieć się o operatorach C++, natknąłem się na dziwny operator porównania na cppreference.com,* w tabel ... ten operator? * W międzyczasie cppreference.com zaktualizowano tę stronę i teraz zawiera informacje o operatorze <=>.

Dlaczego pochodna klasa szablonu nie ma dostępu do identyfikatorów podstawowej klasy szablonu?

Rozważmy: template <typename T> class Base { public: static const bool ZEROFILL = true; static co ... Chciałem użyć stałej statycznej, ponieważ jest ona bardziej bezpieczna pod względem konfliktów nazw, niż makro czy globalna.

Czy powinienem włączyć lub włączyć programy C++?

co powinienem umieścić w programach C++, stdio.h Czy cstdio? i dlaczego? Dlaczego dwa pliki nagłówkowe, które zapewni ... Jak powinienem włączyć inne tego typu nagłówki, czy jest jakaś podstawowa zasada, której powinienem przestrzegać?

gcc / g++: "brak takiego pliku lub katalogu"

g++ daje mi błędy w formularzu: foo.cc:<line>:<column>: fatal error: <bar>: No such file or directory com ... pytających. Celem tego pytania jest , aby zadać pytanie, które inne mogą być zamknięte jako duplikaty, raz na zawsze; a FAQ .

Jakie są etapy kompilacji programu C++?

Czy etapy kompilacji programu C++ są określone przez standard? Jeśli tak, to czym one są? Jeśli nie, ODPOWIEDŹ dla szeroko ... e reszta i spokój. Wyjaśnienia są oczywiście mile widziane, ponieważ być może nie tylko ja jestem zainteresowany odpowiedzią.

Inny wynik zmiennoprzecinkowy z włączoną optymalizacją-błąd kompilatora?

Poniższy kod działa na Visual Studio 2008 z optymalizacją i bez niej. Ale działa tylko na g++ bez optymalizacji (O0). #inclu ... czony Visual Studio 2008 nadal działa? Wygląda na to, że Visual Studio 2008 jest bardziej niezawodny w tym problemie niż g++?

Jak przejść / iterację mapy STL?

In need to know how to traverse a stl map. Nie chcę używać jego klucza. Nie obchodzi mnie kolejność, tylko sposób na dostęp do wszystkich elementów, które zawiera. Jest na to sposób?

Ogranicz zmienne argumenty szablonu

Czy możemy ograniczyć zmienne argumenty szablonu do określonego typu? Tzn. osiągnąć coś takiego (nie prawdziwe C++ Oczywiście ... ametrów. Najbliższe mamy to: template <class... Args> auto foo(Args... args) Ale to akceptuje każdy typ parametru.

Czy metoda std::list:: remove wywołuje destruktor każdego usuniętego elementu?

std::list<Node *> lst; //.... Node * node = /* get from somewhere pointer on my node */; lst.remove(node); Czy metoda std::list:: remove wywołuje destruktor (i wolną pamięć) każdego usuniętego elementu? Jeśli tak, jak mogę tego uniknąć?

Okres pracy tymczasowej

Poniższy kod działa dobrze, ale dlaczego jest to poprawny kod? Dlaczego wskaźnik" c_str () " tymczasowego zwracanego przez fo ... = something...; return out; } void bar( const char* ccp ) { // do something with the string.. } bar( foo().c_str() );

Semantyka FLAG na podstawowym ios

Jestem wielokrotnie zdumiony rdstate() flagami - good(), bad(), eof(), fail() - i jak wyrażają się one w basic_ios::operator! ... i operator void*. Czy ktoś mógłby mnie skrócić z mojej nędzy i wyjaśnić to, żebym nigdy więcej nie musiała się zastanawiać?

Co się dzieje, gdy wyjątek nie jest obsługiwany w wielowątkowym programie C++11?

Jeśli mam program C++11 uruchamiający dwa wątki, a jeden z nich rzuca nieobsługiwany wyjątek, co się stanie? Czy cały program ... , w którym wyrzucany jest wyjątek, umrze sam (a jeśli tak, to czy Mogę uzyskać wyjątek w tym przypadku)? Coś zupełnie innego?

Dlaczego prosty program w stylu "Hello World" nie kompiluje się z Turbo C++?

Zacząłem uczyć się C++ na zajęciach z programowania. Ściągnąłem program "Hello World": #include <iostream> using name ... r Error D:\HELLO.CPP 6: Undefined symbol 'cout' Co jest nie tak z tym bardzo prostym programem? Jak mogę poprawić te błędy?

Czym są przewodniki dedukcyjne szablonów i kiedy powinniśmy z nich korzystać?

Standard C++17 wprowadza "Przewodniki dedukcyjne szablonów". Domyślam się, że są one związane z nowym argumentem szablonu dla ... są i do czego służą. Czym są przewodniki po szablonach w C++17? Dlaczego (i kiedy) są nam potrzebne? Jak je zadeklarować?

Jak radzić sobie z konstruktorami, którzy muszą zdobyć wiele zasobów w bezpieczny sposób

Mam nietrywialny typ, który posiada wiele zasobów. Jak skonstruować go w bezpieczny sposób? Na przykład, tutaj jest klasa ... ! co jeśli są 4 zasoby? Albo 400?! co jeśli liczba zasobów jest nieznana podczas kompilacji?! Czy jest jakiś lepszy sposób?

Czy jest możliwe, aby zapobiec alokacji stosu obiektu i zezwolić tylko na utworzenie instancji z 'new'?

Czy jest możliwe, aby zapobiec alokacji stosu obiektu i tylko pozwolić mu na wstawienie 'nowego' na stosie?

C++ delete-usuwa moje obiekty, ale nadal mogę uzyskać dostęp do danych?

Napisałem prostą, działającą grę tetris z każdym blokiem jako instancją klasowego bloku. class SingleBlock { public: ... 0E94680, X = 222 Czy możliwy jest dostęp do danych zza grobu? Przepraszam, jeśli jest to trochę długie / align = "left" /

Konwertuj string do int za pomocą bool / fail w C++

Mam std::string, który może być ciągiem znaków lub może być wartością (np. 0). Jaki jest najlepszy lub najłatwiejszy sposób na konwersję std::string na int z możliwością niepowodzenia? Chcę wersję C++ C # ' S Int32.TryParse.

Gdzie mogę znaleźć wszystkie gwarancje wyjątków dla standardowych kontenerów i algorytmów?

Tak, przejrzałem standardy C++ , które mogłem znaleźć (lub wersje robocze), ale nie znajduję żadnych wyczerpujących gwarancj ... ej informacji -- a najlepiej darmowej wersji źródła (np. szkicu standardu), gdzie mogę mniej więcej traktować jako oficjalne.