প্রতিচ্ছবি টিএস: এনামগুলির স্থির প্রতিবিম্ব (এবং অন্যান্য ধরণের)
প্রতিফলন হিজড়া , বিশেষ করে [reflect.ops.enum] / 2 প্রতিফলন টিএস-এর সর্বশেষ সংস্করণ খসড়া প্রস্তাব get_enumerators
TransformationTrait
অপারেশন:
[রিফ্লেক্ট.পস.এনম] / ২
template <Enum T> struct get_enumerators
সমস্ত বিশেষায়নের প্রয়োজনীয়তা get_enumerators<T>
পূরণ করতে
TransformationTrait
হবে (20.10.1)। নেস্টেড টাইপ নামের
type
একটি মেটা-অবজেক্ট টাইপ সন্তোষজনক হিসাবে মনোনীত করে
ObjectSequence
, এমন উপাদান রয়েছে যা Enumerator
দ্বারা পরিগণিত ধরণের গণকেরকে সন্তুষ্ট করে এবং প্রতিফলিত করে T
।
খসড়াটির [রিফ্লেক.ওপস.ওবজেসেক] ObjectSequence
ক্রিয়াকলাপকে কভার করে, যেখানে বিশেষত [রিফ্লেক্ট.ওপস.ওবজেসেক] / ১ get_size
মেটা-অবজেক্ট সন্তুষ্ট করার জন্য উপাদানগুলির সংখ্যা বের করার বৈশিষ্ট্যকে অন্তর্ভুক্ত করে ObjectSequence
:
[রিফ্লেক্ট.ওপস.ওবজেসেক] / ১
template <ObjectSequence T> struct get_size;
সমস্ত বিশেষায়নের প্রয়োজনীয়তাগুলি get_size<T>
পূরণ করতে
UnaryTypeTrait
হবে (20.10.1) এর বেস বৈশিষ্ট্য সহ
integral_constant<size_t, N>
, যেখানে N
বস্তুর ক্রমের উপাদানগুলির সংখ্যা।
সুতরাং, প্রতিবিম্বে টিএসকে তার বর্তমান আকারে গ্রহণ এবং প্রয়োগ করতে হবে, একটি এনামের উপাদানগুলির সংখ্যার সংকলন সময়ে নিম্নরূপে গণনা করা যেতে পারে:
enum class Example { A, B, C, D, E };
using ExampleEnumerators = get_enumerators<Example>::type;
static_assert(get_size<ExampleEnumerators>::value == 5U, "");
যেখানে আমরা সম্ভবত ওরফে টেম্পলেটগুলি দেখতে পাচ্ছি get_enumerators_v
এবং get_type_v
প্রতিবিম্বটি আরও সরল করতে:
enum class Example { A, B, C, D, E };
using ExampleEnumerators = get_enumerators_t<Example>;
static_assert(get_size_v<ExampleEnumerators> == 5U, "");
প্রতিবিম্ব টিএস-এর স্থিতি
হার্ব সাটারের ট্রিপ প্রতিবেদনে বলা হয়েছে: গ্রীষ্ম আইএসও সি ++ স্ট্যান্ডার্ড মিটিং (র্যাপারসিল) জুন 9, 2018 থেকে আইএসও সি ++ কমিটির গ্রীষ্ম সভা, রিফ্লেকশন টিএসকে বৈশিষ্ট্য-সম্পূর্ণ হিসাবে ঘোষণা করা হয়েছে
প্রতিচ্ছবি টিএস বৈশিষ্ট্য-সম্পূর্ণ : প্রতিবিম্ব টিএসটি বৈশিষ্ট্য-সম্পূর্ণ হিসাবে ঘোষিত হয়েছিল এবং গ্রীষ্মে এটির মূল মন্তব্য ব্যালটের জন্য পাঠানো হচ্ছে। আবার লক্ষ করুন যে টিএসের বর্তমান টেম্পলেট মেটাপোগ্র্যামিং-ভিত্তিক বাক্য গঠন কেবল একটি স্থানধারক; অনুরোধ করা হচ্ছে প্রতিক্রিয়াটি হ'ল ডিজাইনের মূল "সাহস", এবং কমিটি ইতিমধ্যে জানে যে এটি একটি সরল প্রোগ্রামিং মডেলের সাথে পৃষ্ঠতল বাক্য গঠনটি প্রতিস্থাপন করতে চায় যা সাধারণ সংকলন-সময় কোড ব্যবহার করে এবং না<>
স্টাইল রূপক ব্যবহার করে ।
এবং প্রাথমিকভাবে সি ++ ২০ এর জন্য প্ল্যানড করা হয়েছিল , তবে এটি প্রতিফলিত টিএস-তে এখনও এটি C ++ 20 রিলিজ করার সুযোগ পাবে কিনা তা কিছুটা অস্পষ্ট।