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

Когда именно инициализатор временно уничтожается?
Я построил этот эксперимент сегодня, ответив на некоторые вопросы. struct A { bool &b; A(bool &b):b(b) { } ~A() { std::cout << b; } bool yield() { return true; } }; bool b = A(b).yield(); int main() { } b...
610 просмотров

Сколько временных объектов создается при этой инициализации?
У меня есть такая инициализация: const char* str = std::string("a").c_str(); Сколько временных объектов создается при этой инициализации? Можно "a" считать временным. объект? Я знаю, что std::string("a") временный. объект....
138 просмотров
schedule 08.09.2021

Передача встроенного временного класса в C ++ должна быть константой. Как обойти это
Я хочу написать переносимый код на C ++ 11 для разных процессоров (на самом деле MCU). Поскольку некоторые ЦП не поддерживают чтение данных программы напрямую через адресное пространство памяти (например, Atmel AVR), мне нужно решение, которое...
47 просмотров
schedule 16.11.2021

Продление жизни временного объекта за счет получения ссылки на подобъект
Существует небольшая разница между языком, используемым на cppreference.com и Стандарт C ++ 11 относительно того, когда продлевается срок службы временного объекта (выделено мной). С сайта cppreference.com : Всякий раз, когда ссылка...
276 просмотров

Неконстантная ссылка, связанная с временной ошибкой Visual Studio?
Я столкнулся с этим при компиляции переносимого кода в gcc . По сути, этот странный код компилируется в Visual Studio, что просто поражает меня: class Zebra {int x;}; Zebra goo() {Zebra z; return z;} void foo(Zebra &x) { Zebra y; x =...
3186 просмотров
schedule 23.04.2022

Разное временный объект T()
Рассмотрим этот код: int main() { int i(6); //this will result in i==6,but consider next initializations int j(int()); T * p2 = new T(); } Я обнаружил, что значение j равно 1, но оно должно быть 0, потому что int()...
133 просмотров

Привязка временных файлов к неконстантным ссылкам в случае исключений
Я всегда читал, что временным объектам разрешено связываться только с неконстантными ссылочными аргументами в случае вызовов функций. ДЕЛО 1:- Например:- class Simple{ public: int i; Simple(Simple &f) {...
502 просмотров
schedule 15.08.2022

Создает ли возврат временного объекта временный объект в С++?
Рассмотрим следующий код на C++: struct A {A(int);}; A foo() {return static_cast<A>(0);} A x = foo(); Здесь static_cast<A>(0) создает временный объект по стандарту [5.2.9-4], который является prvalue. Стандарт [12.2-1] говорит...
860 просмотров

Как создаются временные объекты и какие фактические операции происходят?
Может ли кто-нибудь объяснить, как выглядит вывод этого кода: deleting 0xbfc69f7c 3,7 deleting 0xbfc69f84 2,4 deleting 0xbfc69f8c 1,3 Почему не вызывается деструктор временных объектов, созданный при возврате из перегруженного оператора +....
62 просмотров

Генерация предупреждения при вызове функции-члена для временного объекта
Учитывая класс шаблона матрицы mat<M,N,T> , следующая функция-член позволяет мне эффективно транспонировать вектор-строку или вектор-столбец, поскольку они имеют одинаковый/соответствующий объем памяти: template<int M, int N=M, typename T...
76 просмотров
schedule 01.10.2022

Как разрешить неконстантный конструктор копирования для временных файлов
Как разрешить создание класса с конструктором копирования, который принимает неконстантную ссылку, из временных объектов? Фон такой: У меня есть функция, которая должна возвращать список указателей на объекты, унаследованные от Base, поэтому мне...
835 просмотров

Создание временного объекта
Кто-нибудь знает, можно ли включить любой вид ведения журнала на любом компиляторе, совместимом с С++ (Visual Studios, g++ и т. д.), чтобы я мог обнаруживать, когда создаются временные объекты? Например: Допустим, у меня есть функция f(char x)...
211 просмотров

Каково объяснение исключений временного увеличения времени жизни объекта при привязке к ссылке?
В 12.2 стандарта C ++ 11: Временный объект, к которому привязана ссылка, или временный объект, являющийся полным объектом подобъекта, к которому привязана ссылка, сохраняется в течение всего времени существования ссылки, за исключением:...
409 просмотров

Почему операторы стандартной библиотеки C++ принимают rvalue?
Когда я запускаю следующий код: std::string myString = "I'm a string."; const std::string::iterator &myIterator = ++myString.begin(); char c = *myIterator; std::cout << c << std::endl; Я получаю ошибку сегментации (компиляция...
116 просмотров
schedule 10.09.2023

C++17 и эталонное расширение статического временного срока службы
У меня есть код, который пытается выполнить своего рода одноэлементный полиморфизм, например: // header struct B { virtual ~B() = default; virtual void F() = 0; static const B& Type1; static const B& Type2; }; // cpp...
127 просмотров

Срок службы временного объекта, переданного по ссылке в функцию
Да, подобные вопросы задавались и раньше, но они не были точно такими же (или, по крайней мере, предоставленных ответов мне было недостаточно). Мой общий вопрос: каков срок жизни временного объекта, созданного при вызове функции? Код:...
20 просмотров
schedule 07.12.2022

Проблема с константными ссылками и временными объектами
Из C++ Primer я понял, что когда я привязываю константную ссылку к неконстантному объекту, ссылка привязывается к временному объекту, значение которого является неконстантным объектом. int a = 1; const int &b = a; a = 2; std::cout<<b;...
73 просмотров

Почему конструктор копирования не работает, когда я возвращаю автоматическую переменную из функции?
В приведенном ниже примере я хочу выяснить, почему конструктор копирования не вызывается, когда я возвращаю автоматическую переменную из функции doit(). Я понимаю, что первая версия обработчика вызывается, потому что у нас есть временный объект, но...
40 просмотров

Где хранятся временные объекты?
Правда ли, что временные объекты хранятся в динамической памяти (куче)?
3670 просмотров

назначение и инициализация ссылки из временного
допустим у меня есть следующее: boost::unordered_map< string , someValueType > map; someValueType& value = map[ "key" ] = someValueType(); последняя строка содержит: временно построенный экземпляр someValueType назначение...
122 просмотров