প্রশ্ন ট্যাগ «move-semantics»

4
আমরা কেন অনুলিপি করব না?
আমি কোথাও কোড দেখেছি যার মধ্যে কেউ সিদ্ধান্ত নিয়েছে যে কোনও বস্তু অনুলিপি করবে এবং পরবর্তীতে এটি কোনও শ্রেণীর ডেটা সদস্যের কাছে স্থানান্তরিত করে। এটি আমাকে বিভ্রান্তিতে ফেলেছে যে আমি ভেবেছিলাম চলনটির পুরো দিকটি অনুলিপি এড়ানো। এখানে উদাহরণ: struct S { S(std::string str) : data(std::move(str)) {} }; আমার প্রশ্নগুলি এখানে: …

8
ইনিশিয়াল_লিস্ট এবং মুভি শব্দার্থক
আমি কি উপাদানগুলির বাইরে সরানোর অনুমতি দিচ্ছি std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } যেহেতু std::intializer_list<T>বিশেষ সংকলক মনোযোগ প্রয়োজন এবং সি ++ স্ট্যান্ডার্ড লাইব্রেরির সাধারণ ধারকগুলির মতো মূল্য শব্দার্থবিজ্ঞান নেই, তাই …

5
আমি কি কেবল চালিত ধরণের কোনও ভেক্টরকে তালিকাভুক্ত করতে পারি?
যদি আমি আমার জিসিসি 4.7 স্ন্যাপশটের মাধ্যমে নিম্নলিখিত কোডটি পাস করি তবে এটি এসটিকে unique_ptrভেক্টরে অনুলিপি করার চেষ্টা করে । #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } স্পষ্টতই এটি কাজ করতে পারে না কারণ std::unique_ptrঅনুলিপিযোগ্য নয়: ত্রুটি: মোছা …

3
যখন কোনও ভেক্টর বড় হয় তখন কীভাবে মুভ সিনটিক্স প্রয়োগ করতে হয়?
আমার std::vectorএকটি নির্দিষ্ট শ্রেণীর বস্তু রয়েছে A। ক্লাসটি অ-তুচ্ছ এবং এর কপিরাইট কনস্ট্রাক্টর এবং মুভ কনস্ট্রাক্টর সংজ্ঞায়িত রয়েছে। std::vector<A> myvec; যদি আমি ভেক্টরকে Aবস্তুগুলি (যেমন ব্যবহার করে myvec.push_back(a)) পূরণ করি তবে ভেক্টর আকারে বৃদ্ধি পাবে, অনুলিপিটি অনুলিপি করার জন্য অনুলিপি নির্মাণকারীকে ব্যবহার করে A( const A&)ct আমি কি কোনওভাবে প্রয়োগ …

4
কেন কোনও ডিফল্ট মুভ-অ্যাসাইনমেন্ট / মুভ-কনস্ট্রাক্টর নেই?
আমি একজন সাধারণ প্রোগ্রামার। আমার শ্রেণীর সদস্যদের ভেরিয়েবলগুলি প্রায়শই POD- প্রকার এবং এসটিএল-পাত্রে থাকে। এ কারণে আমাকে খুব কমই অ্যাসাইনমেন্ট অপারেটর বা অনুলিপি নির্মাণকারী লিখতে হয়, কারণ এগুলি ডিফল্টরূপে প্রয়োগ করা হয়। এটি যুক্ত করুন, আমি যদি std::moveঅস্থাবর বস্তুগুলিতে ব্যবহার করি তবে এটি অ্যাসাইনমেন্ট-অপারেটরটি ব্যবহার করে, অর্থ std::moveপুরোপুরি নিরাপদ। আমি …

3
সরানো পাত্রে পুনরায় ব্যবহার করছেন?
সরানো পাত্রে পুনরায় ব্যবহার করার সঠিক উপায় কী? std::vector<int> container; container.push_back(1); auto container2 = std::move(container); // ver1: Do nothing //container2.clear(); // ver2: "Reset" container = std::vector<int>() // ver3: Reinitialize container.push_back(2); assert(container.size() == 1 && container.front() == 2); আমি সি ++ 0 এক্স স্ট্যান্ডার্ড খসড়াটিতে যা পড়েছি তা থেকে; ver3 হ'ল …

4
এইচটি :: ম্যাপের কীগুলি থেকে রিসোর্স চুরি করা অনুমোদিত?
সি ++ এ, কোনও মানচিত্র থেকে আমার পরে আর প্রয়োজন হয় না এমন সংস্থানগুলি চুরি করা কি ঠিক হবে? আরও সুনির্দিষ্টভাবে, ধরুন আমার কীগুলির std::mapসাথে একটি আছে std::stringএবং আমি mapএস কীগুলির সংস্থানগুলি ব্যবহার করে এটি থেকে একটি ভেক্টর তৈরি করতে চাই std::move। নোট করুন যে কীগুলিতে এই জাতীয় লিখিত অ্যাক্সেসটি …
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.