تمدید موقت عمر: موارد پیچیده

تمدید موقت عمر چیست؟

تمدید طول عمر موقت (TLE) یک ویژگی زبان C++ است که به شما امکان می دهد عمر یک موقت را در صورتی که به هر مرجع lvalue غیر ثابت محدود شده باشد، افزایش دهید. به طور خاص، ارزش موقت برای طول عمر مرجعی که به آن مقید شده است زنده خواهد ماند. مثال اصلی استفاده از این ویژگی به صورت زیر خواهد بود.

#include 

using T = std::pair;

T func(int x) { return T{x, x}; }

int main() {
   const T& myVar = func(7); // temporary object created by func lives until 
   return myVar.first;       // the end of the scope
}  

من قبلاً برخی از اصول و انگیزه های پشت این ویژگی را در مقاله قبلی خود شرح داده ام. در آنجا سعی کردم عملی باشم و سعی کردم به این سوال پاسخ دهم “چگونه از ویژگی به درستی استفاده کنیم؟” برعکس، این مقاله بیشتر تئوری خواهد بود. ما چند مثال پیچیده را مطالعه خواهیم کرد و سعی خواهیم کرد انگیزه پشت آنها را درک کنیم.

من معتقدم که به ما در درک بهتر این ویژگی خاص و به طور کلی مهندسی کمک خواهد کرد. از آنجایی که اصول TLE قبلاً در مقاله قبلی من مورد بحث قرار گرفته بود، بیایید مستقیماً به مسائل پیچیده بپریم!

مورد با ارث

در مقاله قبلی من، به موردی نگاه کردیم که در آن ما یک عمر موقت را با اتصال آن به مرجعی از …

Source link