المرشحين المشغل المدمج
-
29-09-2019 - |
سؤال
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) { ... }
لا تنتمي إلى StackOverflow