স্ট্যান্ডার্ডটি কি কোনও জিনিস থেকে সরিয়ে নিয়ে যাওয়ার পরে আমি কী করতে পারি তা সুনির্দিষ্টভাবে সংজ্ঞায়িত করে? আমি ভাবতাম যে আপনি সরানো থেকে অবজেক্টের সাথে যা করতে পারেন তা হ'ল এটি ধ্বংস করে দিচ্ছেন, তবে এটি পর্যাপ্ত হবে না।
উদাহরণস্বরূপ, swap
স্ট্যান্ডার্ড লাইব্রেরিতে সংজ্ঞায়িত হিসাবে ফাংশন টেম্পলেটটি নিন :
template <typename T>
void swap(T& a, T& b)
{
T c = std::move(a); // line 1
a = std::move(b); // line 2: assignment to moved-from object!
b = std::move(c); // line 3: assignment to moved-from object!
}
স্পষ্টতই, সরানো-থেকে অবজেক্টগুলিতে নিয়োগ করা অবশ্যই সম্ভব, অন্যথায় 2 এবং 3 লাইন ব্যর্থ হবে। সুতরাং সরানো-থেকে অবজেক্টের সাথে আমি আর কী করতে পারি? স্ট্যান্ডার্ডে আমি এই বিশদটি কোথায় খুঁজে পাব?
(যাইহোক, এটি 1 লাইনের T c = std::move(a);
পরিবর্তে কেন T c(std::move(a));
?)
pop_back
স্থানান্তরিত হতে চান নাvector
। তবে আপনি অবশ্যই তা খুঁজে পেতে পারেনempty()
।