मैं std::unique_ptr
को कक्षा के निर्माता के पास पास करना चाहता हूं जो std::unique_ptr
के स्वामित्व वाले डेटा का स्वामित्व लेगा।स्वामित्व लेने के लिए निर्माता को std :: unique_ptr पास करना
क्या संकलक foo
और bar
के बीच कोई अंतर है, इस बात के संदर्भ में कि कंपाइलर उन्हें कैसे संभालता है जो उनमें से एक को बेहतर बनाता है?
foo
वर्ग:
template <class T>
class foo
{
std::unique_ptr<T> data_;
public:
foo(std::unique_ptr<T>&& data) :
data_{ std::forward<std::unique_ptr<T>>(data) }
{
}
};
bar
वर्ग:
template <class T>
class bar
{
std::unique_ptr<T> data_;
public:
bar(std::unique_ptr<T> data) :
data_{ std::move(data) }
{
}
};
क्या दूसरा भी काम करता है? – 101010
यदि आपकी टीम उत्तरार्द्ध द्वारा कम भ्रमित हो जाती है और आपको इसे समझाने के लिए कम समय बर्बाद कर देगी, तो बाद वाले का उपयोग करें। –
@KerrekSB ने ओपी टीम को भ्रमित और समय बर्बाद करने के बारे में पूछा था? – Slava