0
ответов

предотвращение передачи по ссылке временного объекта

У меня есть класс, который "запоминает" ссылку на некоторый объект (например, целочисленную переменную). Я не могу, чтобы он ссылался на значение, которое немедленно уничтожается, и я ищу способ защитить пользователей...
вопрос задан: 20 June 2012 20:38
0
ответов

Какой код должен знать о ссылках на rvalue?

Я вижу, что у многих людей возникают проблемы с пониманием ссылок на rvalue. Будет ли «обычный» код C ++ (например, который использует стандартную библиотеку, но не реализует ее) должен знать о ссылках на rvalue ...
вопрос задан: 9 June 2012 20:34
0
ответов

Должен ли я std ::перемещать общий указатель _в конструкторе перемещения?

Рассмотрим:#включить #включить <память> #включить #включить <вектор> #включить <алгоритм> #включить <итератор> использование пространства имен std; класс Гизмо {...
вопрос задан: 9 June 2012 13:16
0
ответов

Почему для ссылки r-значения на вызов генератора объектов требуется конструктор копирования?

У меня возникают проблемы со следующим кодом в Visual Studio 2010 C++. makeA() — это просто идиома генератора объектов в C++ (например, std::make_pair) #include struct A{ // 7-я строка A()...
вопрос задан: 4 June 2012 19:29
0
ответов

Должен ли я писать конструкторы, используя rvalue для std::string?

У меня есть простой класс: класс X { стд::строка С; X (const std::string& s) : S(s) { } }; В последнее время я немного читал о rvalue, и мне было интересно, должен ли я написать конструктор для X...
вопрос задан: 31 May 2012 15:05
0
ответов

Должен ли конструктор перемещения принимать константную или неконстантную ссылку на rvalue?

В нескольких местах я видел рекомендуемые сигнатуры конструкторов копирования и перемещения, указанные как: struct T { Т(); T(const T&другое); Т(Т&& другое); }; Где конструктор копирования...
вопрос задан: 26 May 2012 22:11
0
ответов

Массивы и R-значения (как параметры)

Интересно, есть ли какой-нибудь способ различать вызовы функций (с массивами в качестве параметров), показанные в следующем коде: #include #include template
вопрос задан: 16 May 2012 18:40
0
ответов

Конструктор C++ со ссылкой на rvalue

Рассмотрим этот класс с тремя конструкторами :class Circle { public :Circle (int r ){ _radius = r; } Circle (const Circle& c ){ _radius = c.radius (); cout << endl << "...
вопрос задан: 29 April 2012 17:52
0
ответов

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

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

r-Семантика возвращаемого значения ссылки на значение?

Представляет ли подобный возвращаемый тип что-то значимое в С++ 11? шаблон <имя типа R> R&& GrabStuff(); Экземпляр T = grabStuff(); Я надеюсь, что GrabStuff должен...
вопрос задан: 14 April 2012 15:52
0
ответов

Использование ссылок rvalue в c++11

Я хотел бы реализовать функцию, которая заполняет вектор, а затем возвращает ссылку rvalue. Мне надоело что-то вроде: std::vector &&fill_list() { std::vector res; ...
вопрос задан: 28 March 2012 19:47
0
ответов

Являются ли временные объекты значениями x?

В настоящее время я пишу свою дипломную работу, и она также включает в себя некоторое объяснение теории, лежащей в основе C++11, что действительно хорошо, поскольку C++ является моим предпочтительным языком программирования, а стандарт больше ...
вопрос задан: 12 March 2012 16:51
0
ответов

Почему некоторые люди используют swap для перемещений?

Например, stdlibc ++ имеет следующее: unique_lock & оператор = (уникальный_блок && __u) {если (_M_owns) unlock (); unique_lock (std :: move (__ u)). swap (* это); __u._M_device = 0; ...
вопрос задан: 10 March 2012 00:58
0
ответов

Какие библиотеки Boost используют преимущество семантики Move

Ссылки Rvalue и семантика Move — это основная функция C++11, которая может значительно ускорить код за счет уменьшения количества ненужных копий. STL был обновлен, чтобы использовать эту новую функцию, когда c++11/0x ...
вопрос задан: 9 March 2012 22:41
0
ответов

C ++ 11: Почему разрешено присвоение rvalue?

Насколько я понимаю, причина, по которой опасно возвращать ссылки на rvalues ​​из функций, связана со следующим кодом: T && f (T && x) {do_something_to_T ( Икс); return ...
вопрос задан: 29 February 2012 06:19
0
ответов

rvalue-ссылка на массив: может ли это действительно случиться?

Рассмотрим следующий код: #include используя пространство имен std; typedef int array [12]; образец массива; array ret1 () {// не компилирует return sample; } array & ret2 () {образец возврата; } ...
вопрос задан: 3 February 2012 23:05
0
ответов

Перегрузка оператора, которая разрешает захват с помощью rvalue, но не присваивает

Можно ли спроектировать и как следует Я делаю перегруженный оператор + для моего класса C, чтобы это было возможно: C && c = c1 + c2; но это невозможно: c1 + c2 = something; Редактировать: Я изменил ...
вопрос задан: 31 January 2012 23:08
0
ответов

Почему перегрузка r-значения `operator<<` для `basic_ostream` возвращает ссылку на l-значение?

§27.7.3.9 определяет следующую перегрузку для operator<<: template basic_ostream& operator<<(basic_ostream
вопрос задан: 12 January 2012 01:20
0
ответов

Переместиться от *это в rvalue методе?

В C++ 11, методы могут быть перегружены на том, является ли выражение, которое обозначает объект, на котором называют метод, lvalue или rvalue. Если я возвращаюсь *это из метода, названного через...
вопрос задан: 23 December 2011 17:49
0
ответов

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

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

Буквальные числа мутабельные или нет?

Естественно, это не скомпилируется: int &z = 3; // error: invalid initialization of non-const reference .... и это скомпилируется: const int &z = 3; // OK Теперь рассмотрим: const int y = 3; int &...
вопрос задан: 22 December 2011 02:35
0
ответов

Правило трех становится Правилом пяти с C ++ 11?

Итак, после просмотра этой замечательной лекции о ссылках на rvalue, я подумал, что каждый класс получит пользу от таких "конструктор перемещения", шаблон MyClass (T && other) edit и ...
вопрос задан: 19 December 2011 05:00
0
ответов

При каких условиях я должен думать о реализации конструктора перемещения и оператора перемещения?

Для стандартных конструкторов копирования и операторов присваивания я всегда думаю о их реализации или удалении из существования значений по умолчанию, если мой класс реализует деструктор. Для нового оператора перемещения ...
вопрос задан: 12 December 2011 09:27
0
ответов

std :: move vs std :: auto_ptr?

Что я могу сделать с 'move' (ссылками на r-значение) в C ++ 11, чего я не могу сделать с std :: auto_ptr? (Насколько я понимаю, это разные реализации одной идеи.) И снова старый вопрос: std :: auto_ptr, так что ...
вопрос задан: 11 December 2011 16:33
0
ответов

Почему std::move() не работает без _Remove_reference?

_Remove_reference существует, как вы знаете, для преобразования T& в T или T&& в T. Я сделал следующий код в игривом настроении, он не работает совсем не так, как я ожидал, но понятия не имею почему. ...
вопрос задан: 29 November 2011 13:22
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
ответов

Конструкторы перемещения и статические массивы

Я изучал возможности конструкторов перемещения в C ++, и мне было интересно, как можно использовать преимущества этой функции в примере, приведенном ниже. Рассмотрим этот код: template & ...
вопрос задан: 25 October 2011 06:39
0
ответов

Как сделать так, чтобы параметр ссылки rvalue шаблона связывался ТОЛЬКО со ссылкой rvalue?

Я пишу сетевую библиотеку и интенсивно использую семантику перемещения для управления владением файловыми дескрипторами. Один из моих учеников желает получить обертки файловых дескрипторов других типов и стать владельцем, поэтому ...
вопрос задан: 23 October 2011 00:42
0
ответов

Какой самый эффективный способ реализовать возвращаемое вычисленное значение в C ++?

С появлением ссылок на rvalue поверх оптимизации возвращаемого значения, какой способ был бы наиболее эффективным реализовать такую ​​основную функцию? Как я могу улучшить эту реализацию или должен ...
вопрос задан: 3 October 2011 13:23
0
ответов

Использование ссылочных членов rvalue?

Мне было интересно, что использовать ссылочный член rvalue имеет класс A {// ... // Это полезно? Foo & amp; f; }; Есть ли у него какие-либо преимущества или недостатки по сравнению со ссылкой на lvalue ...
вопрос задан: 3 October 2011 13:14