Pytania oznaczone «c++11»

384
Co to jest std :: obietnica?

Jestem dość zaznajomieni z C ++ 11-tych std::thread, std::asynca std::futureskładniki (np zobaczyć tę odpowiedź ), które są prosto do przodu. Nie mogę jednak do końca zrozumieć, co to std::promisejest, co robi i w jakich sytuacjach najlepiej go wykorzystać. Sam standardowy dokument nie zawiera...

368
Szablon C ++ typedef

mam klasę template<size_t N, size_t M> class Matrix { // .... }; Chcę utworzyć, typedefktóry tworzy Vector(wektor kolumny), który jest równoważny Matrixz rozmiarami N i 1. Coś w tym rodzaju: typedef Matrix<N,1> Vector<N>; Co powoduje błąd kompilacji. Poniższe tworzy coś...

367
Zwracanie unikatowej wartości z funkcji

unique_ptr<T>nie zezwala na tworzenie kopii, zamiast tego obsługuje semantykę przenoszenia. Jednak mogę zwrócić a unique_ptr<T>z funkcji i przypisać zwróconą wartość do zmiennej. #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() {...

367
Kompilowanie C ++ 11 za pomocą g ++

Próbuję zaktualizować mój kompilator C ++ do C ++ 11. Trochę przeszukałem i doszedłem do wniosku, że muszę użyć flagi -std=c++0xlub -std=gnu++0x, ale niewiele wiem o flagach. Czy ktoś może mi pomóc? (Używam Ubuntu 12.04.) Oto błąd, który otrzymuję z kompilatora, gdy próbuję użyć biblioteki...

356
Jak aktywować C ++ 11 w CMake?

Kiedy próbuję uruchomić plik makefile wygenerowany przez CMake w celu skompilowania mojego programu, pojawia się błąd zakres oparty na pętlach nie jest obsługiwany w trybie C ++ 98. Próbowałem dodać add_definitions(-std=c++0x)do mojego CMakeLists.txt, ale to nie pomogło. Próbowałem...

337
Kiedy należy używać funkcji constexpr w C ++ 11?

Wydaje mi się, że posiadanie „funkcji, która zawsze zwraca 5”, łamie lub osłabia znaczenie „wywoływania funkcji”. Musi być jakiś powód lub potrzeba takiej możliwości, inaczej nie byłoby w C ++ 11. Dlaczego tam jest // preprocessor. #define MEANING_OF_LIFE 42 // constants: const int MeaningOfLife...

334
Do czego służą wbudowane przestrzenie nazw?

C ++ 11 zezwala na inline namespaces, których wszyscy członkowie są również automatycznie dołączani namespace. Nie mogę wymyślić żadnego przydatnego zastosowania tego - czy ktoś mógłby podać krótki, zwięzły przykład sytuacji, w której jest inline namespaceto potrzebne i gdzie jest to najbardziej...

321
Pętla for ++ oparta na C ++ 11 w odwrotnym zakresie

Czy istnieje adapter kontenera, który odwróciłby kierunek iteratorów, dzięki czemu mogę iterować po kontenerze w odwrotnej kolejności za pomocą pętli for opartej na zakresie? Za pomocą jawnych iteratorów przekonwertowałbym to: for (auto i = c.begin(); i != c.end(); ++i) { ... zaangażowany w...

294
Rozpocznij wątek za pomocą funkcji członka

Próbuję zbudować std::threadz funkcją członka, która nie przyjmuje argumentów i zwraca void. Nie mogę znaleźć żadnej składni, która działa - kompilator narzeka bez względu na wszystko. Jaki jest prawidłowy sposób zaimplementowania spawn(), std::threadaby zwracał wykonanie test()? #include...

276
Różnica w make_shared i normal shared_ptr w C ++

std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); Wiele postów z Google i Stackoverflow jest na ten temat, ale nie jestem w stanie zrozumieć, dlaczego make_sharedjest bardziej wydajny niż bezpośrednie korzystanie...

270
Dlaczego C ++ nie ma śmietnika?

Nie zadaję tego pytania przede wszystkim ze względu na zalety zbierania śmieci. Moim głównym powodem, dla którego o to pytam, jest to, że wiem, że Bjarne Stroustrup powiedział, że C ++ będzie miało w pewnym momencie moduł wyrzucający śmieci. To powiedziawszy, dlaczego nie zostało dodane? Istnieje...