3
ответа

Преимущества использования форварда

В идеальной пересылке std :: forward используется для преобразования именованных ссылок rvalue t1 и t2 в безымянные ссылки rvalue. Какова цель сделать это? Как это повлияет на вызываемую функцию ...
вопрос задан: 20 October 2014 20:19
2
ответа

Пакеты параметров и семантика перемещения

В следующем коде попытка переместить-конструировать через пакет параметров не удалась. Что мне не хватает и как я могу исправить код для запуска всех 4 вариантов? #include < utility > struct File {File (...
вопрос задан: 15 January 2019 21:30
2
ответа

Не удалось вывести параметр шаблона '_Fn' [duplicate]

Учитывая следующее MWE использования класса модуля, предназначенное для того, чтобы предлагать фьючерсную «перезагрузку» принадлежащего std :: unique_ptr content #include & lt; future & gt; #include & lt; memory & gt; #include & lt; string & gt; / ** .
вопрос задан: 12 September 2014 19:52
1
ответ

Как был бы один станд. вызова:: передать на всех аргументах в функции variadic?

Я просто писал фабрику родового объекта и использовал метабиблиотеку препроцессора повышения для создания шаблона variadic (использующий 2010, и она не поддерживает их). Моя функция использует rval ссылки и std:...
вопрос задан: 4 September 2018 09:45
1
ответ

Специальный тип-вычет для r-значений [дубликат]

Я понимаю (едва), что T & amp; & amp; могут приобретать различные значения в контексте вывода типа, позволяющие совершенную пересылку. То же самое относится к, скажем, к std :: vector & lt; T & gt; & amp; & amp ;? ...
вопрос задан: 1 March 2016 01:40
0
ответов

В чем разница между std::move и std::forward

Я видел это здесь: Конструктор Move вызывает конструктор Move базового класса. Может ли кто-нибудь объяснить: разницу между std::move и std::forward, желательно с некоторыми примерами кода? Как подумать о...
вопрос задан: 28 February 2018 09:53
0
ответов

Правильный стиль объявления for на основе диапазона

В этом вопросе упоминалось очевидное идиоматическое использование C++11 на основе диапазона for. for (auto& elem: container) { // делаем что-то с elem } У меня были сомнения относительно типа ссылки, которую вы '...
вопрос задан: 23 May 2017 12:04
0
ответов

Почему std :: forward отбрасывает constexpr-ness?

Поскольку std :: forward не объявлен constexpr, он отбрасывает constexpr-ness для любой функции, которой он передает аргументы. Почему std :: forward не объявляет сам constexpr, чтобы он мог сохранить constexpr-ness? ...
вопрос задан: 23 May 2017 11:51
0
ответов

Идеальная переадресация - что это такое? [дубликат]

Возможный дубликат: преимущества использования пересылки Не могли бы вы объяснить мне, что такое идеальная переадресация?
вопрос задан: 23 May 2017 02:03
0
ответов

Зачем использовать std :: forward для контейнера перед доступом к элементу?

Скотт Мейерс в своей новой книге «Effective Modern C ++» показывает следующую функцию в качестве примера использования decltype (auto) (стр. 28): template <имя-контейнера, индекс-имя-типа> decltype (авто) ...
вопрос задан: 15 December 2014 16:49
0
ответов

Что означает T & amp; (двойной амперсанд) значит в С ++ 11?

Я изучил некоторые из новых функций C ++ 11, и одна из них я заметил, это двойной амперсанд в объявлении переменных, таких как T & amp; & amp; вар. Для начала, как зовут этого зверя? Хотелось бы ...
вопрос задан: 4 December 2013 22:33
0
ответов

Должны ли все / большинство функций установки в C ++ 11 быть написаны как шаблоны функций, принимающие универсальные ссылки?

Рассмотрим класс X с N переменными-членами, каждая из которых имеет некоторый копируемый и подвижный тип, и N соответствующих функций-сеттеров. В C ++ 98 определение X скорее всего будет выглядеть примерно так: класс X ...
вопрос задан: 7 January 2013 14:02
0
ответов

C ++ Unified Оператор назначения Оператор Move-Semantics

Редактировать: Решено См. - Не знаем, как отметить как решено без ответа. После просмотра канала 9 видео на идеальной передающей / перемещении семантики в C ++ 0x Я был некоторым, что привело к веру ...
вопрос задан: 3 September 2012 10:10
0
ответов

std :: forward и конструктор с неконстантным ссылочным аргументом

В Кратком введении в Rvalue References идеальная пересылка предлагается как идеальное решение для передачи rvalue 5 конструктору с неконстантным ссылочным аргументом. Но: #include
вопрос задан: 24 August 2012 13:14
0
ответов

Изменение порядка переменных параметров

Я столкнулся с необходимостью изменить порядок вариативного списка параметров, который предоставляется конструктору структуры. После переупорядочения в зависимости от их типов параметры будут сохранены в виде...
вопрос задан: 3 July 2012 00:43
0
ответов

C++11 std ::функция и совершенная переадресация

Почему определение std ::function<> ::operator ()в стандарте C++ — это :R operator ()(ArgTypes... )const; а не оператор R ()(ArgTypes&&... )const; ? Казалось бы, правильно...
вопрос задан: 21 June 2012 10:01
0
ответов

make_unique и точная пересылка

Почему в стандартной библиотеке C ++ 11 нет шаблона функции std :: make_unique? Я нахожу std :: unique_ptr p (new SomeUserDefinedType (1, 2, 3)); немного многословно. Разве не ...
вопрос задан: 12 May 2012 02:36
0
ответов

объединение перегрузок const T& и T&&

У меня есть следующие две перегрузки шаблона функций :template необязательный некоторый (const T& x ){ вернуть необязательный (x ); } шаблон<имя типа T> typename std ::...
вопрос задан: 18 April 2012 14:54
0
ответов

Как создать идеальный конструктор пересылки для вариативного класса, подобного кортежу

Я пытаюсь создать нечто похожее на кортеж, но я столкнулся с проблемой при написании своего конструктор. Вот код: #include template struct B {...
вопрос задан: 3 March 2012 21:56
0
ответов

Насколько полезным было бы наследование конструкторов в C ++?

Пока я сижу на заседаниях комитета по стандартам C ++, они обсуждают плюсы и минусы отказа от наследования конструкторов, поскольку нет поставщика компилятора уже реализовал это (смысл в том, что пользователи не знают...
вопрос задан: 23 December 2011 04:44
0
ответов

Идеальная пересылка члена объекта

Предположим, у меня есть две структуры: struct X {}; структура Y {X x; } У меня есть функции: void f (X &); void f (X &&); Как мне написать функцию g (), которая принимает Y & или Y &&, но идеально ...
вопрос задан: 23 December 2011 04:19
0
ответов

Почему идеальная функция пересылки должна быть шаблонной?

Почему следующий код является допустимым: template void foo(T1 &&arg) { bar(std::forward(arg)); } std::string str = "Hello World"; foo(str); // Верно, даже если str является ...
вопрос задан: 1 December 2011 23:24
0
ответов

Почему не `const int ci = 2; std :: forward (ci); `работа и как ее исправить / обойти?

Простой вопрос, почему следующее не работает (подразумевая копию ci)? #include <утилита> int main () {const int ci = 2; std :: forward (ci); } prog.cpp: В функции 'int main () ...
вопрос задан: 27 November 2011 04:16
0
ответов

Идеальная пересылка и std :: tuple (или другой шаблонный класс)

У меня есть некоторые трудности с идеальной пересылкой. Вот мой текущий уровень понимания: клей Template + rvalue reference + std :: forward и активируется специальный магический режим, где ...
вопрос задан: 25 November 2011 23:35
0
ответов

Как я могу создать шаблонный конструктор, позволяющий использовать все l-value ref, r-value ref и initializer_list?

I Я пытаюсь создать класс, который имеет два вектора больших последовательностей. std :: vector factory () {return std :: vector {1,2,3}; // на самом деле он генерирует большую последовательность ...
вопрос задан: 5 November 2011 08:04
0
ответов

Идеальная пересылка в D?

tl;dr: Как сделать идеальную пересылку в D? По ссылке есть отличное объяснение, но, например, допустим, у меня есть такой метод: void foo(T)(in int a, out int b, ref int c, scope int delegate(ref ...
вопрос задан: 31 October 2011 00:21
0
ответов

Сочетание двух конструкторов, которые копируют и перемещают

В настоящее время один из моих шаблонов классов игрушек имеет два конструктора, которые выглядят очень похожи: необязательно (Const T & X) {построить (х); } Дополнительно (T && X) {строить (std :: move (x)); } Могу ли я ...
вопрос задан: 12 September 2011 13:21