سؤال

C ++ 03 $ 13.6/1- [...] إذا كان هناك مرشح مكتوب من قبل المستخدم مع نفس الاسم وأنواع المعلمات كدالة مشغل مرشح مدمج ، فإن وظيفة المشغل المدمجة مخفية ولم يتم تضمينها في مجموعة وظائف المرشح. "

لست متأكدًا من نية هذا الاقتباس من المعيار. هل من الممكن تحديد وظيفة المرشح المحددة للمستخدم والتي لها نفس الاسم ونصوصها كمشغل مدمج؟

على سبيل المثال ، وهو ما هو خاطئ بوضوح.

int operator+(int)

إذن ماذا يعني هذا الاقتباس؟

هل كانت مفيدة؟

المحلول

مجرد اختيار واحد من هؤلاء في 13.6. يحب

لكل مؤشر أو نوع تعداد ، توجد وظائف مشغل المرشح للنموذج

bool operator<(T, T);
bool operator>(T, T);
bool operator<=(T, T);
bool operator>=(T, T);
bool operator==(T, T);
bool operator!=(T, T);

لذا

enum Kind { Evil, Good };
bool operator<(Kind a, Kind b) { ... }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top