আমি কেবল একটি জেনেরিক অবজেক্ট ফ্যাক্টরি লিখছিলাম এবং বুস্ট প্রিপ্রোসেসর মেটা-লাইব্রেরিটি ব্যবহার করে একটি বৈকল্পিক টেম্পলেট তৈরি করছিলাম (২০১০ ব্যবহার করে এটি তাদের সমর্থন করে না)। আমার ফাংশনটি যথোপযুক্ত std::forward
ফরোয়ার্ডিংয়ের জন্য এবং যথাযথ ফরোয়ার্ডিংয়ের জন্য ব্যবহার করে এবং আমাকে ভাবতে থাকে ... যখন C ++ 0 এক্স আসে এবং আমার কাছে একটি স্ট্যান্ডার্ড সংকলক ছিল আমি সত্যিকারের ভেরিয়েডিক টেম্পলেটগুলির সাথে এটি করতাম। তবে আমি কীভাবে std::forward
যুক্তি জানাব?
template <typename ...Params>
void f(Params... params) // how do I say these are rvalue reference?
{
y(std::forward(...params)); //? - I doubt this would work.
}
আমি যেভাবেই ভাবতে পারি তার জন্য ... প্যারামগুলির ম্যানুয়াল আনপ্যাকিংয়ের প্রয়োজন হবে এবং আমি এখনও সেখানে উপস্থিত নেই। একটি দ্রুত সিনট্যাক্স আছে যা কাজ করবে?
void f(Params&& ...params)