STD :: SWAP ممکن است در فضای نام STD برای انواع تعریف شده از برنامه تخصص داشته باشد ، اما چنین تخصص هایی توسط ADL یافت نمی شود (فضای نام STD فضای نام مرتبط برای نوع تعریف شده از برنامه نیست).
روش مورد انتظار برای ایجاد یک نوع تعریف شده از برنامه قابل تعویض ، ارائه یک مبادله عملکرد غیر عضو در همان فضای نام مانند نوع است: برای جزئیات بیشتر به squaptable مراجعه کنید.
اضافه بار زیر در حال حاضر توسط کتابخانه استاندارد ارائه شده است:
[ویرایش] مثال
این کد را اجرا کنید
#عبارتند از#عبارتند ازنامنزاع{ طبقهآ{ در نظر گرفتنشناسه{}; دوست خالیمبادله کردن(A&lhs ، a&RHS) { std ::چاک "مبادله (" LHS ", " RHS ")
";std::مبادله کردن(LHSid، RHS.id); } دوست std ::دلهره&اپراتور(std ::دلهره&سیستم عامل ، الفمحاصره کردن& a) { برگشتپیش روی "A :: id =" آ.id; } عمومی: A(در نظر گرفتن i) :شناسه{i} {} A(A محاصره کردن&) =حذف; A&اپراتور= (A محاصره کردن&) =حذف; }; } در نظر گرفتناصلی() { در نظر گرفتنآ= 5، ب= 3; std ::چاک آ ' ' شرح '
';std::مبادله کردن(a, b); std ::چاک آ ' ' شرح '
';نزاع::Aپ{6}، q{9}; std ::چاک پ ' ' سعدی '
'; // std :: مبادله (p ، q) ؛// خطا ، الزامات نوع راضی نیستمبادله کردن(p, q); // خوب ، ADL دوست مناسب `مبادله را پیدا می کند std ::چاک پ ' ' سعدی '
'; }5 3 3 5 a :: id = 6 a :: id = 9 مبادله (a :: id = 6 ، a :: id = 9) a :: id = 9 a :: id = 6
[ویرایش] گزارش های نقص
گزارش های نقص در حال تغییر رفتار به صورت برگشتی به استانداردهای C ++ که قبلاً منتشر شده بود ، استفاده شد.
| DR | اعمال شده به | رفتار همانطور که منتشر شد | رفتار صحیح |
| LWG 227 | ج ++ 98 | t لازم نبود که کپی سازنده یا پیش فرض باشد (یک شیء موقت از نوع T ممکن است قادر به ساخت نباشد) | T همچنین لازم است که کپی سازنده باشد |
| LWG 809 | ج ++ 98 | آرایه ها قابل تعویض نبودند | اضافه بار اضافه شده (2) |
| LWG 2554 | C ++ 11 | مبادله آرایه های چند بعدی هرگز به دلیل مشکلات جستجوی نام هرگز نمی تواند وجود داشته باشد | ساخته شده برای کار |
آموزش استراتژی معاملاتی...
ما را در سایت آموزش استراتژی معاملاتی دنبال می کنید
برچسب :
نویسنده : ملیحه نصیری
بازدید : <-PostHit->
تاريخ : سه
شنبه
14 شهريور
1402 ساعت: 17:56