سؤال

ماذا يعني هذان الخطان الغريبان من الكود؟

thread_guard(thread_guard const&) = delete;

thread_guard& operator=(thread_guard const&) = delete;
هل كانت مفيدة؟

المحلول

ال =delete هي ميزة جديدة من C ++ 0x. وهذا يعني أن المترجم يجب أن يتوقف على الفور من التجميع ويشتكي "يتم حذف هذه الوظيفة" بمجرد استخدام المستخدم هذه الوظيفة (انظر أيضًا: الوظائف الافتراضية والحذف - التحكم في التخلف عن السداد من C ++ 0x أسئلة وأجوبة من قبل Bjarne Stroustrup).

ال thread_guard(thread_guard const&) هو منشئ نسخ ، و thread_guard& operator=(thread_guard const&) هو مُنشئ الواجب. هذان الخطان معًا ، يعطل نسخ thread_guard حالات.

نصائح أخرى

إنه بناء جملة C ++ 0x الجديد لتعطيل وظائف معينة من الفصل. نرى ويكيبيديا على سبيل المثال. هنا أنت تخبر هذا الفصل thread_guard لا يمكن نسخه ولا يمكن تعيينه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top