আমি সি ++ 11 নিয়ে একটি প্রকল্পে কাজ করছি এবং কোড অনুসরণ করার চেষ্টা করেছি
#include <atomic>
struct A {
std::atomic_int idx = 1;
};
int main() {
return 0;
}
আমি সংকলক ত্রুটি পেয়েছি
error: use of deleted function 'std::__atomic_base<_IntTp>::__atomic_base(const std::__atomic_base<_IntTp>&) [with _ITp = int]'
std::atomic_int idx = 1;
^
সি ++ 14 এর সাথে একই ফলাফল। আমি যখন সি ++ 17 এ চলেছি এটি কাজ করে: ভ্যান্ডবক্স
আমি পার্থক্যগুলির জন্য cppreferences পরীক্ষা করেছি:
তবে সি ++ 14 এবং সি ++ 17 এর মধ্যে কোনও পার্থক্য নথিভুক্ত নেই। এটি কেন সি ++ 17 এর সাথে কাজ করে না সি ++ 14 এর সাথে?
main
(বা কোনও ফাংশন, এটির প্রয়োজন হয় না main
) সরল করতে পারেন । ক্ল্যাং একইরকম ত্রুটি বার্তা দেয়, এটি আরও স্পষ্ট করে যে এটি ইনিশিয়ালাইজার বা প্লেইন কনস্ট্রাক্টরের পরিবর্তে মুছে ফেলা কপি কনস্ট্রাক্টর ব্যবহার করার চেষ্টা করছে : গডবোল্ট.আর.জেজ / এসবিজিফ 9 ডব্লিউবিসি ++