Описание тега rvalue

Rvalue - это временный объект (или подобъект) или значение, не связанное напрямую с объектом.
0 ответов

push_back PR-значение в векторе

Внимательно читая ссылки, конструктор перемещения может быть вызван только Xvalue. Тогда как-то так... std::vector<Class> vec vec.push_back(Class(..args..)) возможно без перемещения (приведения) к Xvalue? Есть ли конкретный способ использовани…
1 ответ

Что такое использование ссылочных переменных-членов rvalue

Мне было интересно, есть ли смысл иметь ссылочную переменную rvalue (не как параметр функции)? Я понимаю использование ссылки rvalue, когда она используется как переменная функции, так как тогда можно избежать ненужных распределений и т. Д. Но есть …
17 май '15 в 19:40
3 ответа

C Как определить rvalue и lvalue?

В C есть ли способ определить значения и значения? Некоторые из них легко идентифицировать, например, в присваивании левое значение равно lvalue, а правое значение - rvalue. Но в других сценариях отождествление с таким правилом затруднительно. Напри…
19 июн '12 в 16:27
1 ответ

Невозможно перегрузить ссылками на *this

Вот список занятых я написал, чтобы поиграть с новой функцией в gcc-4.8.1+ (я думаю, clang-2.9+ тоже должен это делать) для N2439 (ref-qualifiers for 'this'): class Foo { public: Foo(int i) : _M_i(i) { } int bar() & { return _M_i /= 2; } int bar…
02 апр '13 в 21:37
1 ответ

Неоднозначные /rvalue аргументы приводят к тому, что компилятор выбирает неправильную перегрузку

У меня есть домашний шаблон класса под названием Vec которая является бледной тенью: std::vector<T> Чтобы не изобретать колесо, перегрузка жатки для assign скопированы из: std::vector::assign ..так В рамках тестирования Str класс,..test код та…
01 мар '17 в 15:56
1 ответ

Конструктор структуры шаблона со ссылочным параметром

У меня есть структура шаблона, как это template<typename ... Args> struct A; template<> struct A<>{ }; template<typename First, typename ... Args> struct A<First, Args...>:private A<Args...>{ typedef A<Args...&…
02 авг '14 в 22:42
2 ответа

Как использовать инициализатор со ссылочным параметром rvalue // Почему невозможно инициализировать массив в стиле C с помощью другой переменной массива в стиле C

преамбула Прежде чем читать это, учтите, что я новичок в C++. Я еще не изучил все (базовые) концепции (например, шаблоны), но я пытаюсь полностью понять некоторые основы, прежде чем перейти к чему-то другому. Поэтому, пожалуйста, не упоминайте std::…
07 дек '17 в 13:16
1 ответ

Rvalue ссылка на временную декларацию

E && e0 = E () ; E e1 ; есть ли различия между этими двумя случаями объявления объекта?;
30 янв '16 в 13:02
2 ответа

Правда ли, что переменные, адрес которых может быть взят, являются lvalues?

Недавно, читая блог Скотта Мейерса об универсальной ссылке, я пришел с утверждением, что "если вы можете взять адрес выражения, выражение будет lvalue". но действительно ли это правда Предположим, у меня есть следующий код class Test { }; int main()…
18 май '16 в 09:00
1 ответ

Выражение значения C++ с деструктором генерирует предупреждение C4701 в Visual Studio 2010

Следующий код C++, компилируется без предупреждения в Visual Studio 2010: extern void callFunc( int, int ); struct str_wrapper { str_wrapper(); }; extern bool tryParseInt( const str_wrapper& str, int& outValue ); void test() { int x, y; if ( tryPars…
14 июл '10 в 19:14
1 ответ

Почему это значение не повышается до значения l, как указано в ссылке?

Справочник по ржавчине говорит: Левый операнд выражения присваивания или составного присваивания является lvalue-контекстом, как и единственный операнд унарного заимствования. [...] Когда rvalue используется в контексте lvalue, вместо него создаетс…
07 янв '17 в 10:55
0 ответов

Почему я не могу использовать временный ifstream в C++ 11?

Почему я должен объявить именованную переменную file в следующем коде? #include <iostream> #include <fstream> using namespace std; int main(int const argc, char const * const * const argv) { string head1; ifstream file {argv[1]}; getline…
12 авг '14 в 13:42
5 ответов

Какой синтаксический сахар доступен в Perl для сокращения кода операторов l/rvalue по сравнению с операторами if?

Там есть куча, так как Perl - довольно сладкий язык, но наиболее часто используемые операторы на любом языке - это сочетание операторов if и значений настроек. Я думаю, что я нашел много из них, но все еще есть несколько пробелов. В конечном счете, …
17 окт '11 в 16:08
0 ответов

Clang++ 2D указатель массива странные ошибки

Следующий код прекрасно компилируется с g++, но не работает с clang++ в режиме C++11. Я отметил ошибки в строке. Кто-нибудь может точно объяснить, в чем проблема? #include <iostream> using namespace std; int main(){ int nx=1000; int ny=1000; d…
06 мар '15 в 20:12
2 ответа

Присвоение Rvalue, возвращенного из функции другому Rvalue

class Test { public: int n1; }; Test func() { return Test(); } int main() { func() = Test(); } Это не имеет смысла для меня. Как и почему это разрешено? Это неопределенное поведение? Если функция возвращает значение rvalue, то как можно установить з…
13 фев '16 в 09:11
1 ответ

Конструктор std::thread передается по ссылке при использовании функции-члена класса

Я провел небольшое исследование нового C++11 rvalue и перенес lvalue. Вот пример того, что я нашел и прочитал: какие-делает-трет-двойной амперсанд-среднего-в-c11 как-stdthread-конструктор-детектирует-Rvalue-справочник stdthread-и-Rvalue-справочник Я…
1 ответ

Универсальные ссылки с функциями

Какой тип "Univ" в коде ниже? template<typename T> void func(T&& univ) { // ?? } int sum(int a, int b) { return a+b; } int main() { func(sum); } Я не знал, что универсальные ссылки также работают с функциями. Является func(sum); эквива…
01 июл '15 в 22:53
3 ответа

Проблемы с конструктором C++

Интересно, может ли кто-нибудь помочь с тем, что мне кажется странным в c++ (gcc Последняя версия). Ниже приведен код, который успешно компилируется, и я ожидаю ошибки времени компиляции из-за отсутствия соответствующего конструктора. Кто-нибудь мож…
23 янв '13 в 22:07
0 ответов

Несоответствие типа параметра: выражение должно быть rvalue

string operator+(string str1, string str2) { string thisValue = str1; return string(thisValue.append(str2)); } ссылка на jpg: https://puu.sh/z06u7/57d8129c24.png Я работаю с: CLion2017.2.3 У меня ошибка: "Несоответствие типа параметра: выражение дол…
12 янв '18 в 21:44
4 ответа

Разрешают ли ссылки rvalue висячие ссылки?

Рассмотрим ниже. #include <string> using std::string; string middle_name () { return "Jaan"; } int main () { string&& danger = middle_name(); // ?! return 0; } Это ничего не вычисляет, но компилирует без ошибок и демонстрирует то, что …
15 сен '10 в 09:20