প্রশ্ন ট্যাগ «variadic-templates»

ভারিয়াদিক টেম্পলেটগুলি এমন টেম্পলেটগুলি যা পরামিতিগুলির একটি পরিবর্তনশীল সংখ্যক পরিমাণ নেয়।

8
একটি ম্যাচ ফাংশন পয়েন্টার কল করতে একটি টিপল "আনপ্যাকিং"
আমি std::tupleবিভিন্ন ধরণের মানগুলিতে সঞ্চয় করার চেষ্টা করছি , যা পরে কোনও ফাংশন পয়েন্টারে কল করার জন্য আর্গুমেন্ট হিসাবে ব্যবহৃত হবে যা সঞ্চিত ধরণের সাথে মেলে। আমি যে সমস্যার সমাধান করতে চাইছি তা দেখিয়ে একটি সরল উদাহরণ তৈরি করেছি: #include <iostream> #include <tuple> void f(int a, double b, void* c) …

6
Make_unique এবং নিখুঁত ফরোয়ার্ডিং
std::make_uniqueমানক সি ++ 11 লাইব্রেরিতে কেন কোনও ফাংশন টেম্পলেট নেই ? আমি খুজি std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); কিছুটা ভার্জোজ। নিম্নলিখিত খুব ভাল না হবে? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); এটি দুর্দান্তভাবে লুকায় newএবং কেবল একবারে টাইপের উল্লেখ করে। যাইহোক, বাস্তবায়নের জন্য এখানে আমার প্রচেষ্টা make_unique: template<typename T, typename... …

1
কীভাবে একজন কল করতে পারেন std :: একটি ভ্যারিয়েডিক ফাংশনে সমস্ত আর্গুমেন্টের দিকে?
আমি কেবল একটি জেনেরিক অবজেক্ট ফ্যাক্টরি লিখছিলাম এবং বুস্ট প্রিপ্রোসেসর মেটা-লাইব্রেরিটি ব্যবহার করে একটি বৈকল্পিক টেম্পলেট তৈরি করছিলাম (২০১০ ব্যবহার করে এটি তাদের সমর্থন করে না)। আমার ফাংশনটি যথোপযুক্ত std::forwardফরোয়ার্ডিংয়ের জন্য এবং যথাযথ ফরোয়ার্ডিংয়ের জন্য ব্যবহার করে এবং আমাকে ভাবতে থাকে ... যখন C ++ 0 এক্স আসে এবং আমার …

2
“……” টোকেনটির অর্থ কী? অর্থাত প্যারামিটার প্যাকে ডাবল উপবৃত্তাকারী অপারেটর
নতুন সিসি ++ 11 শিরোনামের গিগিটির বর্তমান প্রয়োগের মাধ্যমে ব্রাউজ করার সময়, আমি "......" টোকেনকে হোঁচট খেয়েছি। আপনি যাচাই করতে পারেন, যে নিম্নলিখিত কোডটি সূচকগুলি [আদর্শ আইটেম ডটকমের মাধ্যমে] সংকলন করে । template <typename T> struct X { /* ... */ }; template <typename T, typename ... U> struct X<T(U......)> …

2
বৈকল্পিক টেম্পলেটগুলির প্রসঙ্গে "…" টোকেনের নিয়ম কী?
সি ++ 11 তে এই জাতীয় মত বৈকল্পিক টেম্পলেট রয়েছে: template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); } এটি সম্পর্কে কিছু কৌতূহল রয়েছে: এক্সপ্রেশনটি std::forward<Args>(args)...উভয় Argsএবং argsকেবলমাত্র একটি ...টোকেন ব্যবহার করে। উপরন্তু std::forwardএকটি অ-variadic টেমপ্লেট ফাংশন শুধুমাত্র একটি টেমপ্লেট প্যারামিটার এবং এক …

4
কীভাবে বৈকল্পিক টেম্পলেট আর্গুমেন্ট সংরক্ষণ করবেন?
পরে ব্যবহারের জন্য কোনও প্যারামিটার প্যাক সংরক্ষণ করা কি সম্ভব? template <typename... T> class Action { private: std::function<void(T...)> f; T... args; // <--- something like this public: Action(std::function<void(T...)> f, T... args) : f(f), args(args) {} void act(){ f(args); // <--- such that this will be possible } } তারপরে পরে: …

1
সি ++ 11: ভারিয়াদিক টেম্পলেট ফাংশন পরামিতিগুলির সংখ্যা?
আমি কীভাবে একটি বৈকল্পিক টেম্পলেট ফাংশনটিতে যুক্তির সংখ্যার একটি গণনা পেতে পারি? অর্থাত: template<typename... T> void f(const T&... t) { int n = number_of_args(t); ... } number_of_argsউপরোক্ত ক্ষেত্রে কার্যকর করার সবচেয়ে ভাল উপায় কী ?

3
আমি কীভাবে সি ++ তে টাইপ তালিকার কার্টেসিয়ান পণ্য তৈরি করতে পারি?
স্ব বর্ণনামূলক। মূলত, বলুন আমার মতো টাইপ তালিকাগুলি রয়েছে: using type_list_1 = type_list<int, somestructA>; using type_list_2 = type_list<somestructB>; using type_list_3 = type_list<double, short>; এগুলি টাইপ তালিকার বিভিন্ন সংখ্যা হতে পারে। আমি কীভাবে কার্টেসিয়ান পণ্যটির টাইপলিস্ট পেতে পারি? result = type_list< type_list<int, somestructB, double>, type_list<int, somestructB, short>, type_list<somestructA, somestructB, double>, type_list<somestructA, …

3
ভারিয়াদিক টেমপ্লেট: দলগুলিতে যুক্তি প্রকাশ করা
আমার একটি ফাংশন রয়েছে যা দুটি যুক্তি গ্রহণ করে: template <typename T1, typename T2> void foo(T1 arg1, T2 arg2) { std::cout << arg1 << " + " << arg2 << '\n'; } এবং একটি ভিন্নধর্মী যা যুক্তিগুলিতে তার যুক্তিগুলি ফরোয়ার্ড করবে: template <typename... Args> void bar(Args&&... args) { static_assert(sizeof...(Args) % …

5
প্যারামিটার প্যাকের গোষ্ঠীযুক্ত বা জোড়াযুক্ত ভাঁজ কীভাবে করবেন?
template<class Msg, class... Args> std::wstring descf(Msg, Args&&... args) { std::wostringstream woss; owss << Msg << ". " << ... << " " << args << ": '" << args << "' ";//not legal at all //or owss << Msg << ". " << args[0] << ": '" << args[1] << …
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.