У меня есть класс, который "запоминает" ссылку на некоторый объект (например, целочисленную переменную). Я не могу, чтобы он ссылался на значение, которое немедленно уничтожается, и я ищу способ защитить пользователей...
Я вижу, что у многих людей возникают проблемы с пониманием ссылок на rvalue. Будет ли «обычный» код C ++ (например, который использует стандартную библиотеку, но не реализует ее) должен знать о ссылках на rvalue ...
У меня возникают проблемы со следующим кодом в Visual Studio 2010 C++. makeA() — это просто идиома генератора объектов в C++ (например, std::make_pair) #include struct A{ // 7-я строка A()...
У меня есть простой класс: класс X
{ стд::строка С; X (const std::string& s) : S(s) { }
}; В последнее время я немного читал о rvalue, и мне было интересно, должен ли я написать конструктор для X...
В нескольких местах я видел рекомендуемые сигнатуры конструкторов копирования и перемещения, указанные как: struct T
{ Т(); T(const T&другое); Т(Т&& другое);
}; Где конструктор копирования...
Интересно, есть ли какой-нибудь способ различать вызовы функций (с массивами в качестве параметров), показанные в следующем коде: #include
#include template
Рассмотрим этот класс с тремя конструкторами :class Circle { public :Circle (int r ){ _radius = r; } Circle (const Circle& c ){ _radius = c.radius (); cout << endl << "...
У меня есть следующие две перегрузки шаблона функций :template необязательный некоторый (const T& x ){ вернуть необязательный (x ); } шаблон<имя типа T> typename std ::...
Представляет ли подобный возвращаемый тип что-то значимое в С++ 11? шаблон <имя типа R> R&& GrabStuff(); Экземпляр T = grabStuff(); Я надеюсь, что GrabStuff должен...
Я хотел бы реализовать функцию, которая заполняет вектор, а затем возвращает ссылку rvalue. Мне надоело что-то вроде: std::vector &&fill_list() { std::vector res; ...
В настоящее время я пишу свою дипломную работу, и она также включает в себя некоторое объяснение теории, лежащей в основе C++11, что действительно хорошо, поскольку C++ является моим предпочтительным языком программирования, а стандарт больше ...
Ссылки Rvalue и семантика Move — это основная функция C++11, которая может значительно ускорить код за счет уменьшения количества ненужных копий. STL был обновлен, чтобы использовать эту новую функцию, когда c++11/0x ...
Насколько я понимаю, причина, по которой опасно возвращать ссылки на rvalues из функций, связана со следующим кодом: T && f (T && x) {do_something_to_T ( Икс); return ...
Можно ли спроектировать и как следует Я делаю перегруженный оператор + для моего класса C, чтобы это было возможно: C && c = c1 + c2; но это невозможно: c1 + c2 = something; Редактировать:
Я изменил ...
В C++ 11, методы могут быть перегружены на том, является ли выражение, которое обозначает объект, на котором называют метод, lvalue или rvalue. Если я возвращаюсь *это из метода, названного через...
Предположим, у меня есть две структуры: struct X {};
структура Y {X x; } У меня есть функции: void f (X &);
void f (X &&); Как мне написать функцию g (), которая принимает Y & или Y &&, но идеально ...
Естественно, это не скомпилируется: int &z = 3; // error: invalid initialization of non-const reference .... и это скомпилируется: const int &z = 3; // OK Теперь рассмотрим: const int y = 3;
int &...
Итак, после просмотра этой замечательной лекции о ссылках на rvalue, я подумал, что каждый класс получит пользу от таких "конструктор перемещения", шаблон MyClass (T && other) edit и ...
Для стандартных конструкторов копирования и операторов присваивания я всегда думаю о их реализации или удалении из существования значений по умолчанию, если мой класс реализует деструктор. Для нового оператора перемещения ...
Что я могу сделать с 'move' (ссылками на r-значение) в C ++ 11, чего я не могу сделать с std :: auto_ptr? (Насколько я понимаю, это разные реализации одной идеи.) И снова старый вопрос: std :: auto_ptr, так что ...
_Remove_reference существует, как вы знаете, для преобразования T& в T или T&& в T. Я сделал следующий код в игривом настроении, он не работает совсем не так, как я ожидал, но понятия не имею почему. ...
I Я пытаюсь создать класс, который имеет два вектора больших последовательностей. std :: vector factory () {return std :: vector {1,2,3}; // на самом деле он генерирует большую последовательность ...
Я изучал возможности конструкторов перемещения в C ++, и мне было интересно, как можно использовать преимущества этой функции в примере, приведенном ниже. Рассмотрим этот код: template & ...
Я пишу сетевую библиотеку и интенсивно использую семантику перемещения для управления владением файловыми дескрипторами. Один из моих учеников желает получить обертки файловых дескрипторов других типов и стать владельцем, поэтому ...
С появлением ссылок на rvalue поверх оптимизации возвращаемого значения, какой способ был бы наиболее эффективным реализовать такую основную функцию? Как я могу улучшить эту реализацию или должен ...
Мне было интересно, что использовать ссылочный член rvalue имеет класс A {// ... // Это полезно? Foo & amp; f; }; Есть ли у него какие-либо преимущества или недостатки по сравнению со ссылкой на lvalue ...