Вопросы по теме 'temporary-objects'

Методы цепочки и временные переменные, пожалуйста, уточните
Всем привет! У меня есть класс, который получает указатель на «круг» (например), а затем настраивает его атрибуты с помощью некоторых методов «цепочки». Что-то вроде этого: class CCircleSetter { public: explicit CCircleSetter( CCirclePtr...
959 просмотров
schedule 05.11.2023

Как поменять местами более двух переменных, используя временные переменные
Я пытаюсь понять, как поменять местами более двух переменных, используя временную переменную. Есть 4 переменные, которые нужно поменять местами, 1,2,3 и 4. Первая переменная - поменять местами 2, 2 - 3, 3 - 4 и 4 - 1. Это кажется достаточно простым,...
3875 просмотров
schedule 16.06.2022

шаблонная строка оператора() не будет компилироваться, когда временный объект
Кто-нибудь знает, почему последняя строка в main не компилируется (обратите внимание, что компиляция не выполняется): template <typename TT> inline TT getAs(); template <> string getAs() { return "bye"; } template <>...
90 просмотров

C++ продолжительность жизни временного объекта, переданного в конструктор
У меня есть класс, который принимает ссылку istream в конструкторе. Если конструктору передается временный объект, такой как myclass obj(ifstream("filename")); , будет ли этот ifstream полезен для жизни obj ? Зависит ли это от того, присвоено ли...
229 просмотров

Почему я все еще могу получить доступ к ссылке на временный объект?
const std::string& f(){ std::string s = "Hello"; return s + s; } int main() { std::string s = "Hello"; std::string& s1 = s + s; s1 += "!"; std::cout << f(); } У меня есть несколько вопросов об этом коде,...
76 просмотров
schedule 07.11.2023

Увеличивается ли время жизни временного объекта C ++, созданного в выражении?:, Путем привязки его к локальной константной ссылке?
Мне неясно, будет ли увеличено время жизни временного объекта путем привязки его к константной ссылке в выражении?:: class Foo {...}; Foo *someLValue = ...; const Foo& = someLValue ? *someLValue : Foo(); Увеличивается ли время жизни...
266 просмотров

Что происходит со ссылочной переменной, когда ее ссылка «умирает»?
Допустим, я создаю класс с именем MyClass , который содержит ссылочную переменную m_my_resource. Эта ссылочная переменная, по сути, является просто именованным псевдонимом, связанным с какой-то другой ячейкой памяти. Мои занятия class...
130 просмотров
schedule 03.08.2022

Заявление, которое не является полным выражением
Часто можно услышать, что в C++ временные объекты деконструируются в конце полного выражения . Полное выражение определяется как выражение, которое не является подвыражением какого-либо другого выражения. Для меня это звучит очень похоже на...
257 просмотров
schedule 03.06.2023

Время жизни временного объекта, захваченного по ссылке в замыкании, хранящемся в классе
Рассмотрим следующий фрагмент кода: struct foo { }; template <typename F> struct impl : F { impl(F&& f) : F{std::move(f)} { } auto get() { return (*this)(); } }; template <typename X> auto returner(X&& x) {...
237 просмотров

Константный параметр ссылочной функции: можно ли запретить временные объекты?
Возможно иметь параметр функции, который обеспечивает следующую семантику: Параметр не будет изменен функцией. Вызов функции никогда не создает копию или временный объект для параметра. Пример: void f(const std::string & str);...
58 просмотров

Лямбда захватывает ссылку rvalue по ссылке
Является ли приведенный ниже код стандартным? ( богболт ) т.е. by-ref захватывает ссылку пересылки, представляющую временную, и возвращает результирующее лямбда-значение из функции в том же выражении . Конечно, сохранение лямбды для...
525 просмотров

Срок действия и / или продление времени жизни mem-инициализатора при агрегированной инициализации
CWG 1815 спросила (с небольшими изменениями): struct A {}; struct B { A&& a = A{}; }; B b1; // #1 B b2{A{}}; // #2 B b3{}; // #3 [...] #2 - это агрегированная инициализация, которая связывает B::a с временным...
66 просмотров