perfect-forwarding

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.

dokonaj wyjątkowego i doskonałego spedycji

Dlaczego nie ma std::make_unique szablonu funkcji w standardowej bibliotece C++11? Znajduję std::unique_ptr<SomeUserDefi ... e jestem pewien, czy to jest poprawne. Naprawdę? Co dokładnie oznacza std::forward<Args>(args)...? Co na to kompilator?

Czy Mogę zazwyczaj / zawsze używać std:: forward zamiast std:: move?

Oglądałem wykład Scotta Meyersa na temat uniwersalnych odniesień z konferencji C++ and Beyond 2012 i wszystko ma sens do tej ... ::move: void doWork(Widget&& param) // move { // ops and exprs using std::forward<Widget>(param) }

Czy wszystkie/większość funkcji settera w C++11 powinny być zapisywane jako szablony funkcji akceptujące uniwersalne odwołania?

Rozważmy klasę X z N zmiennymi składnikowymi, każdy z niektórych typów kopiowalnych i ruchomości oraz N odpowiadających im ... otetyczną zasadą "zapisywanie funkcji settera jako szablonów funkcji akceptujących uniwersalne odwołania, o ile to możliwe "?

Jak można wywołać STD:: forward na wszystkich argumentach w zmiennej funkcji?

Właśnie pisałem generic object factory i używałem meta-biblioteki preprocesora boost, aby stworzyć zmienny szablon(używając 2 ... ić, wymagałby ręcznego rozpakowywania z ...params i jeszcze nie jestem tam. Czy istnieje szybsza składnia, która by działała?

Po co używać idealnie przekazywanej wartości (functor)?

C++11 (i C++14) wprowadza dodatkowe konstrukcje językowe i ulepszenia, które dotyczą programowania ogólnego. Należą do nich t ... ekazywana, tzn. dlaczego std::forward<F>(f)(std::get...? Dlaczego po prostu nie zastosować funkcji jako f(std::get...?

Przechwytywanie doskonale przekazanej zmiennej w lambda

template<typename T> void doSomething(T&& mStuff) { auto lambda([&mStuff]{ doStuff(std::forward<T> ... przechwytywania dla idealnie przekazywanych zmiennych? EDIT: co jeśli idealnie przekazana zmienna jest pakietem parametrów?

C++ Unified Assignment Operator move-semantyka

EDIT: rozwiązany Zobacz komentarze --Nie wiem, jak oznaczyć jako rozwiązane bez odpowiedzi. Po obejrzeniu filmu na kanale 9 ... ła praktyka(nie sądzę, że jest sposób na sprawdzenie, czy sam przypisujesz)? Czy kompilator nie jest jeszcze gotowy? Dzięki

Jak przydatne byłyby konstruktory dziedziczące w C++?

Kiedy siedzę na zebraniach C++ Standards committee, dyskutują oni o zaletach i wadach porzucenia konstruktorów dziedziczących ... chniczne powody, które mogłyby uniemożliwić" doskonałych konstruktorów spedycyjnych " bycie odpowiednią alternatywą? Dzięki!

Jaki jest najlepszy sposób zmiany nazwy (alias/forward) funkcji w C++?

(ograniczę to pytanie do C++11, ponieważ uważam, że nie ma ogólnego sposobu, aby to zrobić w C++98). Przypuśćmy, że mam skom ... ób: namespace NS1{namepsace NS2{ ALIAS_FUNCTION(NSA::fun, gun); // second argument (target name can't have namespace) }}