Вопросы по теме 'rvalue-reference'
C++0x: условный оператор, xvalues и decltype
Я повторно публикую comp.std.c++ Обсуждение Usenet здесь, потому что эта группа стала очень ненадежной. Последние несколько постов, которые я туда отправил, ушли в пустоту, и активность почти прекратилась. Сомневаюсь, что меня забанили и/или все...
626 просмотров
schedule
26.10.2022
Использование ссылочных элементов rvalue?
Мне было интересно, какое использование имеет ссылочный элемент rvalue
class A {
// ...
// Is this one useful?
Foo &&f;
};
Есть ли у него какие-либо преимущества или недостатки по сравнению с элементом ссылки lvalue? Каков его...
6497 просмотров
schedule
08.12.2023
Контейнеры стандартных библиотек, создающие множество копий rvalue в GCC
Я пишу приложение как для Linux, так и для Windows и заметил, что сборка GCC производит много бесполезных вызовов конструктора копирования.
Вот пример кода для создания такого поведения:
struct A
{
A() { std::cout <<...
507 просмотров
schedule
19.04.2023
Visual C++ 2010, ошибка ссылки на rvalue?
Это ошибка в Visual C++ 2010 или правильное поведение?
template<class T>
T f(T const &r)
{
return r;
}
template<class T>
T f(T &&r)
{
static_assert(false, "no way"); //< line # 10
return r;
}
int main()
{...
809 просмотров
schedule
18.06.2022
RValue, разрешение шаблона и конструкторы копирования (в Visual C++ 2010)
Я создаю простой контейнерный класс, но сталкиваюсь с некоторыми проблемами (повторная сборка в Visual C++ 2010, ошибка ссылки rvalue? )
#include <cassert>
#include <utility>
template<typename T0>
class MyType {
public:...
397 просмотров
schedule
17.08.2023
Что такое ссылка rvalue на тип функции?
Недавно я сосредоточился на концепциях glvalues, xvalues и prvalues C++0x, а также на ссылках rvalue. Однако есть одна вещь, которая до сих пор ускользает от меня:
Что такое "ссылка rvalue на тип функции" ? Он буквально неоднократно...
1241 просмотров
schedule
19.08.2023
Изменяемы ли буквальные числа или нет?
Естественно, это не скомпилируется:
int &z = 3; // error: invalid initialization of non-const reference ....
и это будет скомпилировано:
const int &z = 3; // OK
Теперь рассмотрим:
const int y = 3;
int && yrr = y;...
258 просмотров
schedule
30.10.2022
Передача результата std::forward_as_tuple() нескольким функциям, которые могут перемещаться из элементов rvalue-reference этого объекта?
Изменить: я думаю, что наиболее вероятным вариантом использования того, о чем я спрашиваю, является создание функции, которая получает кортеж rvalue-references от std::forward_as_tuple() .
Причина, по которой этот вопрос пришел мне на ум,...
983 просмотров
schedule
25.12.2022
Как заставить средство форматирования кода Eclipse CDT понимать ссылку на rvalue?
У меня есть довольно неприятная проблема с форматировщиком / парсером кода Eclipse CDT IDE, и я не могу найти на нее ответ.
По какой-то причине синтаксический анализатор IDE не рассматривает ссылку на rvalue как часть нормального кода C++ и,...
520 просмотров
schedule
21.07.2023
C++11: Почему разрешено присвоение rvalue?
Насколько я понимаю, причина, по которой опасно возвращать ссылки rvalues из функций, связана со следующим кодом:
T&& f(T&& x) { do_something_to_T(x); return static_cast<T&&>(x); }
T f(const T& x) { T x2 = x;...
4243 просмотров
schedule
14.05.2022
Могу ли я обычно / всегда использовать std :: forward вместо std :: move?
Я смотрел Скотта Мейерса поговорим об универсальных справочниках с конференции C ++ and Beyond 2012, и пока все имеет смысл. Однако примерно через 50 минут один из зрителей задает вопрос, который меня тоже интересовал. Мейерс говорит, что его не...
7695 просмотров
schedule
26.09.2023
Обходные пути для отсутствия ссылок rvalue на эту функцию
У меня есть класс контейнера прокси вокруг подвижного объекта, и я хочу, чтобы прокси мог неявно выдавать ссылку rvalue на базовый объект, но только тогда, когда сам прокси перемещается.
Я считаю, что смогу реализовать это поведение согласно...
2867 просмотров
schedule
01.10.2023
Передача значения r в качестве неконстантной ссылки (предупреждение VS C4239)
То, что я хочу сделать (используя лямбду С++), эффективно:
std::vector<MyType> GetTheArray () {return something;}
const auto DoSomething = [](std::vector<MyType> & array)
{
//Some processing that involves either sorting the...
3036 просмотров
schedule
08.02.2023
Должен ли я фиксировать возвращаемое значение по значению или по ссылке на r-значение?
Если у меня есть функция, которая возвращает некоторый объект, например
std::vector<int> foo()
{
std::vector<int> v;
v.push_back(1);
return v;
}
тогда какая разница между словами
std::vector<int> &&v...
144 просмотров
schedule
06.08.2023
вспомогательная конструкция make_XYZ, разрешающая RVO и вывод типа, даже если XZY не имеет ограничения на копирование
ОБНОВЛЕНИЕ 1. В C ++ 17 добавлен вывод типов для конструкторов, что не означает, что бесплатная функция является второстепенным решением.
ОБНОВЛЕНИЕ 2: C ++ 17 добавил гарантированное исключение копии (копирование даже не происходит...
754 просмотров
schedule
01.03.2022
std:forward внутри класса шаблона
template<typename T>
class BlockingQueue
{
std::queue<T> container_;
template< typename U >
void push(U&& value)
{
static_assert(std::is_same<T, typename...
682 просмотров
schedule
08.05.2024
Должен ли оператор присваивания следить за rvalueness присваиваемого объекта?
Для типов классов можно назначать временные объекты, что на самом деле не разрешено для встроенных типов. Кроме того, оператор присваивания, сгенерированный по умолчанию, даже дает lvalue:
int() = int(); // illegal: "expression is not...
523 просмотров
schedule
27.02.2022
Увеличение времени жизни временного через rvalue data-member работает с агрегатом, но не с конструктором, почему?
Я нашел следующую схему для продления срока жизни временных работ, я не знаю, нужно ли, но это так.
struct S {
std::vector<int>&& vec;
};
int main() {
S s1{std::vector<int>(5)}; // construct with temporary...
1174 просмотров
schedule
28.04.2022
Повторное использование кода для lvalue и rvalue
Предположим, у меня есть конструктор копирования. Этот конструктор вызывает иерархию функций, передавая скопированный объект в качестве ссылки lvalue.
Теперь у меня также есть конструктор перемещения, который в основном может использовать ту же...
104 просмотров
schedule
23.08.2022
Когда возврат ссылки rvalue приводит к неопределенному поведению?
В ответе на переполнение стека, здесь , Керрек публикует следующий код.
Foo && g()
{
Foo y;
// return y; // error: cannot bind ‘Foo’ lvalue to ‘Foo&&’
return std::move(y); // OK type-wise (but undefined...
287 просмотров
schedule
09.03.2022