سؤال

يبدو

والمجمعين مختلفة لديهم أفكار مختلفة حول TR1. G ++ يبدو فقط لقبول يشمل من نوع:

#include <tr1/unordered_map>
#include <tr1/memory>
...

وعلى الرغم مايكروسوفت مترجم فقط نقبل:

#include <unordered_map>
#include <memory>
...

وأما عن ما أفهم TR1، والطريقة مايكروسوفت هي واحدة صحيحة.

هل هناك طريقة للحصول على G ++ لقبول النسخة الثانية؟ كيف يمكن للمرء في TR1 مقبض العام بطريقة المحمولة؟

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

المحلول

تثبيت دفعة على جهازك.
إضافة الدليل التالي إلى مسار البحث الخاص بك.

<دفعة دليل التثبيت> / دفعة / TR1 / TR1

ونرى هنا دفعة TR1 للحصول على التفاصيل

والآن عند تضمين <الذاكرة> يمكنك الحصول على نسخة TR1 الذاكرة التي لديها الأمراض المنقولة جنسيا :: :: TR1 shared_ptr ومن ثم فإنه يتضمن إصدار منصة محدد من <الذاكرة> للحصول على كل الأشياء الجيدة العادية.

نصائح أخرى

#ifdef _WIN32
    #include <unordered_map>
    #include <memory>
#else
    #include <tr1/unordered_map>
    #include <trl/memory>
#endif

ولعل أفضل طريقة ليكون مجرد استخدام دفعة المكتبات في الوقت الراهن، كما هو الحال في كثير من الحالات لديهم بدائل مع واجهة مشابهة لملامح TR1، ومجرد بطريقة مختلفة (ولكن متناسقة) مسار رأس ومساحة. وهذا له ميزة العمل على المجمعين التي لم حتى بدأت تنفيذ C ++ 0X. وهناك الكثير من المكتبات دفعة المفيدة التي ليست في TR1 في كل شيء:)

وبدلا من ذلك، على G ++، قد تتمكن من محاولة تمرير --std = جنو ++ 0X على سطر الأوامر. هذا يعمل ل و ، على الأقل. ثم لجعلها متاحة في الأمراض المنقولة جنسيا :: TR1:

namespace std { namespace tr1 { using namespace std; } }

وهذا هو الشر، بطبيعة الحال. أنا أوصى نهج دفعة بدلا من ذلك:)

وصبي hacky ربما، ولكن هل يمكن ببساطة إضافة الدليل TR1 مترجم لتشمل بك المسار.

إذا تحت ويندوز، إضافة "TR1" الدليل إلى مسار النظام. ثم #include <memory> يجب أن تعمل.

وسألت نفسي نفس السؤال. للأسف، لا يقول التقرير الفني الكيفية التي ينبغي أن تدرج رؤوس. ويعرف فقط أن التمديد ينبغي أن يكون في :: :: الأمراض المنقولة جنسيا TR1 مساحة الاسم.

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