Описание тега rvalue
Rvalue - это временный объект (или подобъект) или значение, не связанное напрямую с объектом.
0
ответов
push_back PR-значение в векторе
Внимательно читая ссылки, конструктор перемещения может быть вызван только Xvalue. Тогда как-то так... std::vector<Class> vec vec.push_back(Class(..args..)) возможно без перемещения (приведения) к Xvalue? Есть ли конкретный способ использовани…
22 окт '16 в 16:09
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-справочник Я…
11 окт '17 в 23:03
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