В идеальной пересылке std :: forward используется для преобразования именованных ссылок rvalue t1 и t2 в безымянные ссылки rvalue. Какова цель сделать это? Как это повлияет на вызываемую функцию ...
В следующем коде попытка переместить-конструировать через пакет параметров не удалась. Что мне не хватает и как я могу исправить код для запуска всех 4 вариантов? #include < utility > struct File {File (...
Я просто писал фабрику родового объекта и использовал метабиблиотеку препроцессора повышения для создания шаблона variadic (использующий 2010, и она не поддерживает их). Моя функция использует rval ссылки и std:...
Я понимаю (едва), что T & amp; & amp; могут приобретать различные значения в контексте вывода типа, позволяющие совершенную пересылку. То же самое относится к, скажем, к std :: vector & lt; T & gt; & amp; & amp ;? ...
Я видел это здесь:
Конструктор Move вызывает конструктор Move базового класса. Может ли кто-нибудь объяснить: разницу между std::move и std::forward, желательно с некоторыми примерами кода?
Как подумать о...
В этом вопросе упоминалось очевидное идиоматическое использование C++11 на основе диапазона for. for (auto& elem: container) { // делаем что-то с elem
} У меня были сомнения относительно типа ссылки, которую вы '...
Поскольку std :: forward не объявлен constexpr, он отбрасывает constexpr-ness для любой функции, которой он передает аргументы. Почему std :: forward не объявляет сам constexpr, чтобы он мог сохранить constexpr-ness? ...
Скотт Мейерс в своей новой книге «Effective Modern C ++» показывает следующую функцию в качестве примера использования decltype (auto) (стр. 28): template <имя-контейнера, индекс-имя-типа> decltype (авто) ...
Я изучил некоторые из новых функций C ++ 11, и одна из них я заметил, это двойной амперсанд в объявлении переменных, таких как T & amp; & amp; вар. Для начала, как зовут этого зверя? Хотелось бы ...
Рассмотрим класс X с N переменными-членами, каждая из которых имеет некоторый копируемый и подвижный тип, и N соответствующих функций-сеттеров. В C ++ 98 определение X скорее всего будет выглядеть примерно так: класс X ...
Редактировать: Решено См.
- Не знаем, как отметить как решено без ответа. После просмотра канала 9 видео на идеальной передающей / перемещении семантики в C ++ 0x Я был некоторым, что привело к веру ...
В Кратком введении в Rvalue References идеальная пересылка предлагается как идеальное решение для передачи rvalue 5 конструктору с неконстантным ссылочным аргументом. Но: #include
Я столкнулся с необходимостью изменить порядок вариативного списка параметров, который предоставляется конструктору структуры. После переупорядочения в зависимости от их типов параметры будут сохранены в виде...
Почему определение std ::function<> ::operator ()в стандарте C++ — это :R operator ()(ArgTypes... )const; а не оператор R ()(ArgTypes&&... )const; ? Казалось бы, правильно...
Почему в стандартной библиотеке C ++ 11 нет шаблона функции std :: make_unique? Я нахожу std :: unique_ptr p (new SomeUserDefinedType (1, 2, 3)); немного многословно. Разве не ...
У меня есть следующие две перегрузки шаблона функций :template необязательный некоторый (const T& x ){ вернуть необязательный (x ); } шаблон<имя типа T> typename std ::...
Пока я сижу на заседаниях комитета по стандартам C ++, они обсуждают плюсы и минусы отказа от наследования конструкторов, поскольку нет поставщика компилятора уже реализовал это (смысл в том, что пользователи не знают...
Предположим, у меня есть две структуры: struct X {};
структура Y {X x; } У меня есть функции: void f (X &);
void f (X &&); Как мне написать функцию g (), которая принимает Y & или Y &&, но идеально ...
Почему следующий код является допустимым: template
void foo(T1 &&arg) { bar(std::forward(arg)); } std::string str = "Hello World";
foo(str); // Верно, даже если str является ...
Простой вопрос, почему следующее не работает (подразумевая копию ci)? #include <утилита> int main () {const int ci = 2; std :: forward (ci);
} prog.cpp: В функции 'int main () ...
У меня есть некоторые трудности с идеальной пересылкой. Вот мой текущий уровень понимания: клей Template + rvalue reference + std :: forward и активируется специальный магический режим, где ...
I Я пытаюсь создать класс, который имеет два вектора больших последовательностей. std :: vector factory () {return std :: vector {1,2,3}; // на самом деле он генерирует большую последовательность ...
tl;dr: Как сделать идеальную пересылку в D? По ссылке есть отличное объяснение, но, например, допустим, у меня есть такой метод: void foo(T)(in int a, out int b, ref int c, scope int delegate(ref ...
В настоящее время один из моих шаблонов классов игрушек имеет два конструктора, которые выглядят очень похожи: необязательно (Const T & X)
{построить (х);
} Дополнительно (T && X)
{строить (std :: move (x));
} Могу ли я ...