Pytania oznaczone «c++»

187
Jak używać wyliczeń jako flag w C ++?

Traktowanie enums jak flagi działa dobrze w C # za pomocą [Flags]atrybutu, ale jaki jest najlepszy sposób, aby to zrobić w C ++? Na przykład chciałbym napisać: enum AnimalFlags { HasClaws = 1, CanFly =2, EatsFish = 4, Endangered = 8 }; seahawk.flags = CanFly | EatsFish | Endangered; Jednak...

187
Domyślne argumenty szablonu dla szablonów funkcji

Dlaczego domyślne argumenty szablonów są dozwolone tylko w szablonach klas? Dlaczego nie możemy zdefiniować domyślnego typu w szablonie funkcji członka? Na przykład: struct mycclass { template<class T=int> void mymember(T* vec) { // ... } }; Zamiast tego C ++ wymusza, aby domyślne...

187
Jak zrobić wyjście CMake do katalogu „bin”?

Obecnie buduję projekt ze strukturą wtyczek. Używam CMake do kompilacji projektu. Wtyczki są kompilowane w osobnych katalogach. Mój problem polega na tym, że CMake kompiluje i zapisuje pliki binarne i wtyczki, biblioteki dynamiczne, w strukturze katalogów źródła. Jak zmusić CMake do zapisywania...

187
Niepotrzebne nawiasy klamrowe w C ++?

Dokonując dzisiaj przeglądu kodu dla kolegi, zauważyłem osobliwą rzecz. Swój nowy kod otoczył kręconymi nawiasami klamrowymi: Constructor::Constructor() { existing code { New code: do some new fancy stuff here } existing code } Jaki jest z tego wynik? Jaki może być powód tego? Skąd...

186
Zamień część ciągu na inny

Czy w C ++ jest możliwe zastąpienie części łańcucha innym łańcuchem? Zasadniczo chciałbym to zrobić: QString string("hello $name"); string.replace("$name", "Somename"); Chciałbym jednak użyć standardowych bibliotek C

186
oddziały fork () więcej niż oczekiwano?

Rozważ następujący fragment kodu: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Ten program generuje 8 kropek. Jak to możliwe? Czy zamiast tego nie powinno być 6...

186
Co sprawiło, że i = i ++ + 1; legalny w C ++ 17?

Zanim zaczniesz krzyczeć niezdefiniowane zachowanie, jest to wyraźnie wymienione w N4659 (C ++ 17) i = i++ + 1; // the value of i is incremented Jeszcze w N3337 (C ++ 11) i = i++ + 1; // the behavior is undefined Co się zmieniło? Z tego, co mogę zebrać, z [N4659 basic.exec] O ile nie...

185
mmap () vs. bloki odczytu

Pracuję nad programem, który będzie przetwarzał pliki o rozmiarze potencjalnie 100 GB lub większym. Pliki zawierają zestawy rekordów o zmiennej długości. Mam pierwszą implementację uruchomioną i teraz dążę do poprawy wydajności, szczególnie w zakresie wydajniejszego wykonywania operacji we / wy,...

185
W jakim scenariuszu używam określonego kontenera STL?

Czytałem o kontenerach STL w mojej książce o C ++, a konkretnie w sekcji o STL i jego kontenerach. Teraz rozumiem, że każda z nich ma swoje specyficzne właściwości i jestem blisko zapamiętywania ich wszystkich ... Ale nie rozumiem jeszcze, w którym scenariuszu każdy z nich jest używany. Jakie jest...

185
Kontenery STL czy Qt?

Jakie są zalety i wady korzystania z kontenerów Qt (QMap , QVectoritp) nad ich równowartości STL? Widzę jeden powód, dla którego wolę Qt: Kontenery Qt można przekazywać do innych części Qt. Na przykład można ich użyć do wypełnienia a, QVarianta następnie a QSettings(z pewnymi ograniczeniami...

185
std :: auto_ptr na std :: unique_ptr

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ł)),...

185
Nie możesz użyć modułu podwójnego?

Mam program w C ++ (skompilowany przy użyciu g ++). Próbuję zastosować dwa podwójne jako operandy do funkcji modułu, ale pojawia się następujący błąd: błąd: niepoprawne argumenty typu „double” i „double” do binarnego „operatora%” Oto kod: int main() { double x = 6.3; double y = 2; double z...