আমার এই জাতীয় ক্লাস রয়েছে:
struct event_counts {
uint64_t counts[MAX_COUNTERS];
event_counts() : counts{} {}
// more stuff
};
সাধারণত আমি counts
প্রদর্শিত হিসাবে অ্যারে ডিফল্ট (শূন্য) করতে চাই।
প্রোফাইলিং দ্বারা চিহ্নিত নির্বাচিত স্থানে যাইহোক, আমি অ্যারের সূচনাটি দমন করতে চাই, কারণ আমি জানি অ্যারে ওভাররাইট করা প্রায় শেষ, তবে সংকলকটি এটি বের করার মতো স্মার্ট নয়।
এই জাতীয় "গৌণ" জিরো-আরগ কনস্ট্রাক্টর তৈরির একটি অদ্ভুত এবং দক্ষ উপায় কী?
বর্তমানে, আমি একটি ট্যাগ ক্লাস ব্যবহার করছি uninit_tag
যা একটি ডামি আর্গুমেন্ট হিসাবে পাস করা হয়:
struct uninit_tag{};
struct event_counts {
uint64_t counts[MAX_COUNTERS];
event_counts() : counts{} {}
event_counts(uninit_tag) {}
// more stuff
};
তারপরে আমি নো-থ্রি কনস্ট্রাক্টরকে কল করি event_counts c(uninit_tag{});
যখন আমি নির্মাণটি দমন করতে চাই।
আমি এমন সমাধানগুলিতে উন্মুক্ত যা কোনও ডামি ক্লাস তৈরির সাথে জড়িত নয় বা কোনওভাবে আরও দক্ষ ইত্যাদি etc.