Описание тега reference-wrapper

3 ответа

Передать вектор<reference_wrapper <int>> в вектор<int>?

У меня большой std::vector&lt;int&gt; a, но я хотел бы работать только над его частью. Идея заключалась в том, чтобы создать std::vector&lt;reference_wrapper&lt;int&gt; &gt; refa который содержит только указанное подмножество (в mwe все элементы 1< …
11 фев '14 в 16:44
1 ответ

Сериализация нестандартных конструктивных и альтернативных оболочек std::reference

Я попытался сериализовать свою (нейронную) сеть, и в настоящее время я застрял. Кажется, проблема в том, что вы не можете сериализовать std::reference_wrapper, Я не уверен, стоит ли мне либо изменить способ хранения ссылок на верхние узлы, либо прид…
3 ответа

Передавая ссылки на шаблоны variadic, используйте std::reference-wrapper

Я пытаюсь передать в шаблонную функцию переменной список ссылок и передать его другой функции. Код, который я написал, выглядит следующим образом: template &lt;typename T&gt; void fun(cv::Point_&lt;T&gt; &amp; pt) { pt.x++; pt.y++; } template &lt;cl…
1 ответ

Доступ к членам класса с использованием reference_wrapper вместо стандартных указателей в C++11

Я пытаюсь построить unordered_map в vector переменные, которые являются членами моего класса. Я могу сделать это с помощью стандартных указателей * но это требует использования (*x) чтобы получить доступ к вектору. Интересно, если std::reference_wra…
05 ноя '18 в 20:32
1 ответ

Константа reference_wrapper

В следующем коде цель состоит в том, чтобы reference_wrapper&lt;int&gt; b так что когда a изменения, b также меняется, однако, нельзя допустить обратное, то есть a не должно меняться, когда b изменения. Я попробовал два способа: строки 7 и 8. Строка…
28 авг '14 в 08:29
1 ответ

Полиморфизм в C++ с вектором с базовыми классами и reference_wrapper

Мне нужно использовать полиморфизм в C++ для объектов, которые хранятся в векторе. Из других вопросов следует понимать, что объекты в векторе необходимо сохранять по ссылке, так как в противном случае происходит разрезание объектов. Насколько я пони…
13 окт '15 в 18:28
1 ответ

Оператор перегрузки == для const std::reference_wrapper в std::unordered_map

Я не могу понять, как получить std::string ссылка в std::unordered_map используя std::reference_wrapper, По следующей ссылке я понимаю, что мне нужно перегрузить operator==, Почему экземпляры шаблона не могут быть выведены в `std::reference_wrapper`…
1 ответ

Как передать данные в справочную оболочку

Рассмотрим следующий фрагмент кода: //option no 1 struct foo{ foo(baz &amp;b) : _b(b){} std::reference_wrapper&lt;baz&gt; _b; }; //option no 2 struct bar{ bar(std::reference_wrapper&lt;baz&gt; b) : _b(b){} std::reference_wrapper&lt;baz&gt; _b; }; Мн…
08 янв '19 в 21:34
2 ответа

Полиморфный вызов во время выполнения чисто виртуальной функции через std::reference_wrapper, ведущий себя непоследовательно

Я представляю вам эту загадку кода: Используя этот компилятор: user @ bruh: ~ / test $ g ++ --version g ++ (Ubuntu 7.3.0-16ubuntu3) 7.3.0 Copyright (C) 2017 Free Software Foundation, Inc. Это бесплатное программное обеспечение; см. источник для усло…
0 ответов

Семантика для обернутых объектов: ссылка / значение по умолчанию через std::move/std::ref

В последнее время я часто использую естественную идиому, которую я "открыл" в C++11, - это то, что обернутый объект может автоматически содержать ссылку, когда это возможно. Основной вопрос здесь будет о сравнении поведения этой "идиомы" с другими п…
19 ноя '13 в 19:36
1 ответ

`push_back` to `vector<reference_wrapper <string>>`приводит к тому, что строка в индексе 0 становится пустой

У меня есть два класса, которые являются прямым наследованием без переопределения, поэтому они в основном: vector&lt;string&gt; list а также vector&lt; reference_wrapper&lt;string&gt; &gt; filtered, Идея в том, что я хочу сохранить все значения в li…
27 мар '18 в 05:18
1 ответ

Почему reference_wrapper ведет себя по-разному для встроенных типов?

У меня есть следующее использование std::reference_wrapper для встроенного типа (double) и для определенного пользователем типа (std::string). Почему они ведут себя по-разному в случае оператора потока? #include&lt;functional&gt; //reference wrapper…
2 ответа

Есть ли что-то вроде std::value_wrapper, параллельное std::reference_wrapper?

(ОБНОВЛЕНИЕ: Этот вопрос связан с реализацией класса-оболочки, переданного по значению для объекта, который имеет различные значения для const Foo а также Foo движение, основанное исключительно на сильных мнениях людей здесь. До того я проходил cons…
2 ответа

Как установить начальный размер для контейнера STL reference_wrapper?

У меня есть vector некоторого ссылочного типа, завернутого в reference_wrapper, Так как мне нужно заполнить этот контейнер не по порядку, я пытаюсь установить начальный размер контейнера: vector&lt;std::reference_wrapper&lt;T&gt;&gt; v(5); v[3] = ..…
19 сен '14 в 16:26
1 ответ

Почему `std::reference_wrapper` устарела в C++17 и удалена в C++20?

Начиная с C++11, std::reference_wrapper это небольшой шаблон "shim", который является типом класса, который может быть преобразован из ссылочного типа и преобразован в него. Он может использоваться в универсальных контейнерах, которые иначе не подде…
08 авг '18 в 03:05
3 ответа

C++: справочные оболочки и printf

У меня есть std::vector из std::reference_wrapper объекты, которые я хочу напечатать с помощью printf (без cout); сейчас, если я напишу int a=5; std::reference_wrapper&lt;int&gt; b=a; printf("%i\n\n",b); Я получаю чепуху (я думаю, это адрес a); чтоб…
2 ответа

Проблема с std::reference_wrapper

Проблема ясна с помощью следующего кода: #include &lt;functional&gt; #include &lt;iostream&gt; #include &lt;vector&gt; int main() { //std::vector&lt;int&gt; a, b; int a = 0, b = 0; auto refa = std::ref(a); auto refb = std::ref(b); std::cout &lt;&lt;…
2 ответа

Reference_wrapper: Push_back работает, но не присваивает

В следующем коде push_back() std::ref в std::vector&lt;reference_wrapper&lt;Type&gt;&gt; хорошо работает, однако, присваивая std::ref к reference_wrapper&lt;Type&gt; не работает. Зачем? #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;…
25 июл '14 в 22:17
0 ответов

Конструктор по умолчанию с std::reference_wrapper в качестве члена?

У меня есть эта структура: struct MyStruct { MyStruct(const Wrapper &amp;wrapper, /*...*/) : wrapper(std::cref(wrapper)), /*...*/ {} std::reference_wrapper&lt;Wrapper const&gt; wrapper; /*...*/ }; Тем не менее, теперь я хочу использовать tbb::concur…
25 май '17 в 14:09
2 ответа

Неоднозначный конструктор, принимающий std::reference_wrapper при компиляции с -pedantic

У меня есть класс с конструктором копирования и конструктором, принимающим std::reference_wrapper: #include &lt;functional&gt; #include &lt;iostream&gt; class Class { public: Class() { std::cout &lt;&lt; "Class()" &lt;&lt; std::endl; } Class(Class c…