Вопросы с тегом «object-lifetime»

2
Является ли этот объект-расширение-срок-закрытие ошибкой компилятора C #?
Я отвечал на вопрос о возможности закрытия (законно) продления времени жизни объектов, когда столкнулся с каким-то чрезвычайно любопытным генератором кода со стороны компилятора C # (4.0, если это имеет значение). Самое короткое повторение, которое я могу найти, следующее: Создайте лямбду, которая захватывает локальный при вызове статического метода содержащего типа. Назначьте …

3
Можно ли вернуть значение аргумента по умолчанию с помощью константной ссылки?
Можно ли вернуть значение аргумента по умолчанию с помощью константной ссылки, как в следующих примерах: https://coliru.stacked-crooked.com/a/ff76e060a007723b #include <string> const std::string& foo(const std::string& s = std::string("")) { return s; } int main() { const std::string& s1 = foo(); std::string s2 = foo(); const std::string& s3 = foo("s"); std::string s4 = foo("s"); …

3
Является ли значение указателя `this` постоянным в течение всего времени существования объекта?
thisГарантируется ли значение указателя постоянным в течение жизни определенного объекта? Я не могу представить себе случай, когда это изменится, но не знаю, не пропустил ли я что-то.

2
Вариация на тему типа прокалывания: на месте тривиальная конструкция
Я знаю, что это довольно распространенная тема, но насколько легко найти типичный UB, я не нашел этот вариант до сих пор. Итак, я пытаюсь официально представить объекты Pixel, избегая при этом фактической копии данных. Это действительно? struct Pixel { uint8_t red; uint8_t green; uint8_t blue; uint8_t alpha; }; static_assert(std::is_trivial_v<Pixel>); Pixel* …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.