سؤال

ال hash_map و hash_set لم يتم تضمين الرؤوس في معيار C++ حتى الآن، ولكنها متاحة كامتدادات مع جميع المترجمين الذين استخدمتهم مؤخرًا.

أتساءل إلى أي مدى يمكنني الاعتماد عليها في الكود الحقيقي دون التضحية بإمكانية النقل.أنا أعمل على مشاريع الأدوات التي تحتاج إلى تشغيلها على مجموعة من البنى والمترجمين، بما في ذلك:

  • لينكس (x86_64، أيه إم دي/إنتل): دول مجلس التعاون الخليجي، وإنتل، ومجمعات بورتلاند
  • إيكس (الطاقة): دول مجلس التعاون الخليجي، XLC
  • سلسلة كراي XT (AMD): دول مجلس التعاون الخليجي، بورتلاند، المترجمين Pathscale
  • سلسلة IBM Blue Gene (الطاقة): XLC، دول مجلس التعاون الخليجي
  • إس جي آي ألتيكس (إيتانيوم): المجمعين إنتل
  • شبابيك: ليست في الحقيقة أولوية، ولكن لا تتردد في تقديم إجابات مفيدة.

أدرك أن بعض هذه الأشياء غريبة جدًا، لكن هذا ليس الهدف.ما هي تجاربك مع امتدادات STL عبر منصات ومترجمين متعددين؟هل هم في كل مكان حتى الآن؟كان أنت استخدامها في مشروعك؟

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

المحلول

ربما سأبحث عن معادل التعزيز وأستخدمه.على الأقل لديهم بعض الضغط من مستخدميهم ليكونوا مستقلين عن النظام الأساسي.لا أستطيع أن أتخيل ما يمكن أن يحدث إذا قمت بتقديم خطأ ضد مجمعي دول مجلس التعاون الخليجي وإنتل وطلبت منهم التوفيق بين خلافاتهم حول كيفية تنفيذ hash_map.في أحسن الأحوال، ستكون قادرًا على جعلهم يتحدثون مع بعضهم البعض.لنفترض أنك قد حققت ذلك، إذن فقد أصلحت فقط مدى اختلاف مترجمي Intel وGCC.حظًا سعيدًا في جمع الجميع معًا وحل المشكلة في غضون بضع سنوات.

على الأقل مع التعزيز، ستعرف أن أي اختلافات عبر الأنظمة الأساسية يتم حلها بواسطة منظمة واحدة.

يحررما يعادل دفعة على ما يبدو مجموعة غير مرتبة أو خريطة غير مرتبة.(شكرا رئيس المهوس)

نصائح أخرى

لا، يمكنك كتابة مشروعك الخاص إذا كنت تمتلك مؤسسة/مشروعًا كبيرًا بدرجة كافية.وبهذه الطريقة يمكنك تخصيصها لتناسب احتياجاتك بشكل أفضل ومعالجة مشكلات قابلية النقل.فعلت EA ذلك، من خلال "eastl" الخاص بها الذي يهدف إلى استهداف جميع منصات الألعاب، وأجهزة الكمبيوتر الشخصية، وMac، وXBOX360، وWii، وPS2، وPS3 وما إلى ذلك...

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