سؤال

وأنا أعلم أن مخارج قالب مماثلة في TBB إنتل، بالإضافة إلى أنني لا يمكن العثور على أي تطبيق على جوجل أو في مكتبة دفعة.

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

المحلول

ويمكنك العثور على المناقشات حول هذا التطبيق ميزة في دفعة هناك: HTTP: //lists.boost.org/Archives/boost/2008/11/144803.php

<اقتباس فقرة>   

> هل يمكن للN2427 - تنفذ أنواع C ++ الذرية والعمليات

     

> من دون مساعدة من مترجم؟

     

ولا.

     

وأنها لا تحتاج إلى أن تكون intrinsics إذا كنت تستطيع الكتابة المجمع مضمنة (أو المجمع بشكل منفصل تجميعها ل   هذه المسألة) ثم يمكنك كتابة   عمليات أنفسهم مباشرة. أنت   قد تكون قادرة على استخدام بسيط C ++ حتى   (الاحالة على سبيل المثال فقط عادي للتحميل   أو مخزن). السبب تحتاج   دعم مترجم يمنع   تحسينات غير لائقة: الذري   لا يمكن أن يكون الأمثل العمليات بها، و   عموما يجب عدم إعادة ترتيب   قبل أو بعد أي عمليات أخرى.   هذا يعني أنه حتى غير الذري   مخازن أداء أمام الذرية   مخزن يجب أن تكون كاملة، ويمكن لا   يكون مؤقتا في سجل (على سبيل المثال).   أيضا، والأحمال التي تحدث بعد   عملية الذرية لا يمكن رفعت   قبل المرجع الذري. على بعض   المجمعين، فقط باستخدام المجمع مضمنة   كفى. على الآخرين، استدعاء   وظيفة الخارجية بما فيه الكفاية. MSVC   يوفر   _ReadWriteBarrier () لتقديم طلب مترجم. المجمعين أخرى   تحتاج الأعلام الأخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top