خطا پس از افزودن std::mutex به یک کلاس - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

خطا پس از افزودن std::mutex به یک کلاس

+1 امتیاز

سلام. بعد از اینکه std::mutex را به کلاس از قبل تعریف شده به عنوان متغیر عضو اضافه کردم خطا زیر را دریافت کردم .

: attempting to reference a deleted function
در زابطه با رفع این خطا چه تغییراتی باید توی کد بدم.
 
سپاس
سوال شده خرداد 30, 1398  بوسیله ی Mad (امتیاز 245)   10 35 47

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

باید برای کلاس مورد نظر Copy constructor و assignment operator   را بازنویسی کنید چون استفاده Copy constructor و assignment operator  پیش فرض باعث میشه که std::mutex هم کپی بشه در صورتیکه قابل کپی شدن نیست در بازنویسی همه متغیرهای عضو بجز std::mutex را کپی کنید.

struct   Foo {
    Foo() {}
    Foo(const Foo&) = delete; 
    Foo& operator=(const Foo&) = delete; 
 };

 

پاسخ داده شده خرداد 30, 1398 بوسیله ی عباس مولایی (امتیاز 2,754)   1 5 13
ویرایش شده آذر 11, 1400 بوسیله ی مصطفی ساتکی
...