c++11

Czym jest semantyka ruchu?

Właśnie skończyłem słuchać audycji Software Engineering radio wywiad ze Scottem Meyersem dotyczący C++0x. Większość nowych ... ie sens i jestem teraz podekscytowany C++0x, z wyjątkiem jednej. Nadal nie rozumiem semantyki ruchu ... Co to dokładnie jest?

Czym jest semantyka ruchu?

Właśnie skończyłem słuchać audycji Software Engineering radio wywiad ze Scottem Meyersem dotyczący C++0x. Większość nowych ... mnie sens i jestem teraz podekscytowany C++0x, z wyjątkiem jednej. Nadal nie rozumiem semantyki ruchu ... Czym dokładnie są?

C++11 wprowadził ustandaryzowany model pamięci. Co to znaczy? A jak to wpłynie na programowanie w C++?

C++11 wprowadził ustandaryzowany model pamięci, ale co to dokładnie oznacza? A jak to wpłynie na programowanie w C++? Ten ar ... e wiem, jak działa wewnętrzne wielowątkowość i co ogólnie oznacza model pamięci, proszę o pomoc w zrozumieniu tych pojęć. :-)

Dlaczego powinienem używać wskaźnika, a nie samego obiektu?

Pochodzę z tła Javy i zacząłem pracować z obiektami w C++. Ale jedna rzecz, która przyszła mi do głowy, to to, że ludzie częs ... sposób. Zakładam, że ma to związek z efektywnością i prędkość, ponieważ mamy bezpośredni dostęp do adresu pamięci. Mam rację?

Co to jest wyrażenie lambda w C++11?

Co to jest wyrażenie lambda w C++11? Kiedy mam go użyć? Jaki problem rozwiązują, który nie był możliwy przed ich wprowadzeniem? Kilka przykładów i przypadków użycia byłoby przydatnych.

Co oznacza T& & (double ampersand) w C++11?

Przyglądałem się kilku nowym funkcjom C++11 i jedną z nich zauważyłem jest podwójne ampersand w deklarowaniu zmiennych, takic ... ka wydaje się być podwójnym odniesieniem (jak podwójne wskaźniki w stylu C T** var), ale trudno mi myśleć o przypadku użycia.

Różnica między "constexpr" a " const`

Jaka jest różnica między constexpr a const? Kiedy Mogę używać tylko jednego z nich? Kiedy Mogę używać obu i jak wybrać jeden?

Zasady unieważniania iteratora

Jakie są zasady unieważniania iteratorów dla kontenerów C++? Najlepiej w formacie listy podsumowującej. (uwaga: jest to wpi ... w pierwszej kolejności, więc twój odpowiedź jest bardzo prawdopodobne, aby przeczytać przez tych, którzy wpadli na pomysł.)

Rule-of-Three staje się Rule-of-Five z C++11?

Więc po obejrzeniu tego wspaniałego wykładu na temat referencji rvalue, pomyślałem, że każda klasa skorzysta z takiego "kons ... . Tak jak ty powinieneś mieć copy-ctor, operator przypisania i destruktor, jeśli dotyczą wymienione wcześniej punkty. Myśli?

Jaka jest różnica między 'typedef' a 'using' w C++11?

Wiem, że w C++11 możemy teraz używać using do pisania aliasów typu, np. typedef s: typedef int MyInt; Jest, z tego co rozum ... nową nazwę (konwersje są niejawne między tymi nazwami). Jest to to samo z using czy generuje nowy typ? Czy są jakieś różnice?

Jak przekazać unikalny argument ptr konstruktorowi lub funkcji?

Jestem nowy, aby przenieść semantykę w C++11 i nie wiem zbyt dobrze, jak obsługiwać unique_ptr parametry w konstruktorach lub ... ym? Base::UPtr b1; Base::UPtr b2(new Base()); b1->setNext(b2); //should I write b1->setNext(std::move(b2)); instead?

Co to jest std:: promise?

Jestem dość zaznajomiony z C++11 ' S std::thread, std::async i std::future składniki (np. patrz ta ODPOWIEDŹ ), które są pro ... ać krótki, zwięzły przykład sytuacji, w której potrzebny jest std::promise i gdzie jest najbardziej idiomatyczne rozwiązanie?

Pretty-print C++ stl containers

proszę zwrócić uwagę na aktualizacje na końcu tego postu. Aktualizacja: stworzyłem publiczny projekt na Githubie dla tej b ... ostream & operator<<(std::ostream & o, const MyPrinter<Delims> & p) { return p.base->stream(o); }

C++11 rvalues and move semantyka confusion (return statement)

Próbuję zrozumieć referencje rvalue i przenieść semantykę C++11. Jaka jest różnica między tymi przykładami, a który z nich n ... ector<int> tmp {1,2,3,4,5}; return std::move(tmp); } std::vector<int> &&rval_ref = return_vector();

Czy można wydrukować typ zmiennej w standardowym C++?

Na przykład: int a = 12; cout << typeof(a) << endl; Oczekiwany wynik: int

Czy dni przekazywania const std:: string & jako parametr są skończone?

Słyszałem niedawną rozmowę Herba Suttera, który zasugerował, że powody do odejścia std::vector i std::string przez const & ... ię więc, że przechodzenie przez odniesienie to nadal dobry pomysł. Czy ktoś może wyjaśnić, dlaczego Herb mógł to powiedzieć?

Jaki jest prawidłowy sposób użycia bazującego na zakresach C++11?

Jaki jest prawidłowy sposób użycia C++11 ' s range-based for? Jakiej składni należy używać? for (auto elem : container), albo for (auto& elem : container) lub for (const auto& elem : container)? Albo jakieś inne?

Czym dokładnie jest nullptr?

Mamy teraz C++11 z wieloma nowymi funkcjami. Ciekawym i zagmatwanym (przynajmniej dla mnie) jest Nowy nullptr. Cóż, nie trze ... st słowo kluczowe i instancja typu? Masz też inny przykład (obok Wikipedii), gdzie {[1] } jest lepszy od starego, dobrego 0?

push back vs emplace back

Jestem trochę zdezorientowany co do różnicy między push_back i emplace_back. void emplace_back(Type&& _Val); void pu ... l); Ponieważ istnieje push_back przeciążenie biorąc referencję rvalue nie bardzo rozumiem, jaki cel emplace_back staje się?