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ś użyć, auto&&aby powiedzieć …
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 …
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() { string strings[] = { "hello", "world" }; static const size_t num_strings = sizeof(strings)/sizeof(strings[0]); string best_string …
Scott Meyers opublikował treść i status swojej następnej książki EC ++ 11. Napisał, że jedną z pozycji w książce może być „Unikaj std::enable_ifw sygnaturach funkcji” . std::enable_if może być używany jako argument funkcji, jako typ zwracany lub jako szablon klasy lub parametr szablonu funkcji do warunkowego usuwania funkcji lub klas …
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 można to załatwić w różnych kompilatorach, …
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 0?
Standard C ++ 11 (ISO / IEC 14882: 2011) mówi w § C.1.1: char* p = "abc"; // valid in C, invalid in C++ W przypadku C ++ jest to w porządku, ponieważ wskaźnik do literału ciągu jest szkodliwy, ponieważ każda próba jego modyfikacji prowadzi do awarii. Ale dlaczego jest …
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 <functional> #include <string> #include <chrono> template <typename F> float calc1(F …
Widziałem to tutaj: Move Constructor wywołujący klasę podstawową Move Constructor Czy ktoś mógłby wyjaśnić: różnica między std::movei std::forward, najlepiej z kilkoma przykładami kodu? Jak łatwo o tym pomyśleć i kiedy użyć których
Mam problem ze zrozumieniem użycia inteligentnych wskaźników jako członków klasy w C ++ 11. Dużo czytałem o inteligentnych wskazówkach i myślę, że rozumiem, jak unique_ptri shared_ptr/ weak_ptrdziała ogólnie. To, czego nie rozumiem, to prawdziwe użycie. Wygląda na to, że wszyscy zalecają używanie unique_ptrgo prawie cały czas. Ale jak bym zaimplementował …
Jak przechwycić przez ruch (znany również jako odwołanie do wartości r) w lambdzie C ++ 11? Próbuję napisać coś takiego: std::unique_ptr<int> myPointer(new int); std::function<void(void)> example = [std::move(myPointer)]{ *myPointer = 4; };
Próbuję uzyskać prosty przykład do pracy, aby zrozumieć, jak używać std::enable_if. Po przeczytaniu tej odpowiedzi pomyślałem, że nie powinno być trudno znaleźć prosty przykład. Chcę użyćstd::enable_if do wyboru między dwiema funkcjami składowymi i pozwolić na użycie tylko jednej z nich. Niestety, poniższe nie skompiluje się z gcc 4.7 i po …
C ++ 0x pokazuje przykład użycia std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Kiedy std::forwardzawsze warto używać ? Ponadto wymaga użycia &&w deklaracji parametrów, czy jest ważny we wszystkich przypadkach? Myślałem, że musisz przekazać tymczasowe do funkcji, jeśli funkcja została &&w niej zadeklarowana , więc czy można wywołać …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.