Pytania oznaczone «c++11»

174
Czym dokładnie jest std :: atomic?

Rozumiem, że std::atomic<>jest to obiekt atomowy. Ale do jakiego stopnia atomowa? W moim rozumieniu operacja może być atomowa. Co dokładnie oznacza uczynienie obiektu atomowym? Na przykład, jeśli istnieją dwa wątki współbieżnie wykonujące następujący kod: a = a + 12; Czy zatem cała operacja...

172
shared_ptr do tablicy: czy należy go używać?

Tylko małe zapytanie dotyczące shared_ptr. Czy warto shared_ptrwskazać tablicę? Na przykład, shared_ptr<int> sp(new int[10]); Jeśli nie, to dlaczego nie? Jednym z powodów, o których już wiem, jest to, że nie można zwiększać / zmniejszać wartości shared_ptr. Dlatego nie może być używany...

168
Co mówi nam auto &&?

Jeśli czytasz kod, taki jak auto&& var = foo(); gdzie foojest dowolna funkcja zwracająca wartość typu T. Następnie varjest lwartość typu rwartość odniesienia do T. Ale co to oznacza var? Czy to oznacza, że ​​wolno nam kraść zasoby var? Czy są jakieś rozsądne sytuacje, w których powinieneś...

167
Jak włączyć C ++ 11 w Qt Creator?

Tytuł jest dość samoopisowy. Pobrałem Qt Creator 2.7.0 i próbuję skompilować podstawowy kod C ++ 11: int my_array[5] = {1, 2, 3, 4, 5}; for(int &x : my_array) { x *= 2; } Otrzymuję następujący błąd: range based for loops are not allowed in c++ 98 mode Jednak zgodnie z tym artykułem ta...

166
Przechwytywanie lambda jako odniesienie do stałej?

Czy możliwe jest przechwycenie przez odwołanie do stałej w wyrażeniu lambda? Chcę, aby zadanie zaznaczone poniżej zakończyło się niepowodzeniem, na przykład: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using namespace std; int main() {...

164
Czy funkcje wirtualne mogą mieć parametry domyślne?

Jeśli zadeklaruję klasę bazową (lub klasę interfejsu) i określę wartość domyślną dla co najmniej jednego z jej parametrów, czy klasy pochodne muszą określać te same wartości domyślne, a jeśli nie, to które wartości domyślne będą widoczne w klasach pochodnych? Dodatek: Interesuje mnie również, jak...

163
Jakie są zalety korzystania z nullptr?

Ten fragment kodu koncepcyjnie robi to samo dla trzech wskaźników (bezpieczna inicjalizacja wskaźnika): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; A więc jakie są zalety przypisywania wskaźników nullptrnad przypisywaniem im wartości NULLlub

161
std :: function vs template

Dzięki C ++ 11 otrzymaliśmy std::functionrodzinę wrapperów funktorów. Niestety ciągle słyszę tylko złe rzeczy o tych nowych dodatkach. Najbardziej popularne jest to, że są strasznie powolne. Przetestowałem to i naprawdę są do niczego w porównaniu z szablonami. #include <iostream> #include...