سؤال

كما يعلم الكثير منا (والكثيرون لا يعرفون ذلك)، تخضع لغة C++ حاليًا للمسودة النهائية للمراجعة التالية للمعيار الدولي، ومن المتوقع نشرها في غضون عامين تقريبًا.المسودات والأوراق متاحة حاليا من موقع اللجنة.تتم إضافة جميع أنواع الميزات الجديدة، وأكبرها المفاهيم واللامدا.هناك شاملة جدا مقالة ويكيبيديا مع العديد من الميزات الجديدة.دول مجلس التعاون الخليجي 4.3 وتنفيذ في وقت لاحق بعض ميزات C++0x.

فيما يتعلق بالميزات الجديدة، أنا حقًا أحب سمات الكتابة (والمفاهيم المناسبة)، لكن قائدي المحدد هو القوالب المتنوعة.حتى 0x، كانت قوائم القوالب الطويلة تتضمن عادةً Boost Preprocessor، وتكون كتابتها غير سارة للغاية.وهذا يجعل الأمور أسهل كثيرًا ويسمح بمعاملة قوالب C++0x كلغة وظيفية تمامًا باستخدام قوالب متنوعة.لقد قمت بالفعل بكتابة بعض التعليمات البرمجية الرائعة معهم بالفعل، ولا أستطيع الانتظار لاستخدامها كثيرًا!

إذن ما هي الميزات التي تتوقعها بفارغ الصبر؟

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

المحلول

آلي الكلمة الأساسية للاستدلال على النوع المتغير

نصائح أخرى

Lambdas وقوائم التهيئة.

أيضًا، التغييرات التي لتسهيل إدخال C++ في نهاية المطاف إلى نموذج تجميع البيانات المهملة، تبدو مثيرة جدًا للاهتمام.ربما سيجلب C++ 1x بالفعل مجموعة من البيانات المهملة، لكن 0x/10 يقوم فقط بإعداد الأمور للاحتمال.

أريد مراجع Rvalues.

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

قوالب متنوعة!(والذي يمنحنا، مع مراجع القيمة r، إعادة توجيه مثالية!)

الخيوط والذرات.

مع المعالجات متعددة النواة الآن، كان من المفترض أن يكون المعيار C++0x هو C++07.

ز.

التعدادات المكتوبة بقوة الحصول على صوتي.لقد امتلك باسكال هذه الميزات منذ حوالي 40 عامًا فقط، لذلك من الجيد أن نرى لغة C++ تلحق بالركب أخيرًا.

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

  1. يجب أن يتم دمج بعض مكتبات Boost (shared_ptr<> والربط أعلى القائمة)

  2. التحكم في إنشاء القالب يجب أن يحل أخيرًا مشكلة أوقات الترجمة الهائلة ويجعل من الممكن فعليًا استخدام كود القالب الحديث في المشاريع الكبيرة.

  3. تعريفات القالب

هناك الكثير من الأشياء الصغيرة ولكنها مهمة، ولكنها مهمة في كود الإنتاج.

الأيدي أسفل المفاهيم بالنسبة لي.لكن قوائم المُهيئات وLambdas والقوالب المتنوعة تأتي في المرتبة الثانية.

لا أستطيع أن أقرر بين نوع المؤشر الفارغ, أنواع الصفوف, ، أو التعبير العادي."Foreach" موجود هناك أيضًا."المؤشرات الذكية" غني عن القول ...:-)

في الأساس، أنا أتطلع حقًا إلى التحديث.

أنا شخصياً أعتقد أن الاستخدام المكثف لنوع المؤشر الفارغ سيؤدي إلى اكتشاف الكثير من الأخطاء.تعتبر Tuples رائعة للتعامل مع البيانات العلائقية.الكثير من الأشياء الرائعة.

انها ليست كبيرة، ولكن أنا أحب فكرة حقيقية nullptr.كان ينبغي أن تكون كلمة رئيسية مباشرة من git-go.

الإغلاقات بالنسبة لي.

الكلمة الرئيسية التلقائية

لامداس و المفاهيم

قوس الزاوية في إعلانات القالب المتداخلة.

لذلك سوف أكون قادرا على الكتابة

std::vector<std::vector<int>> a;

بدلا من الرهيبة

std::vector<std::vector<int> > a;

ال for (auto x : collection) بناء جملة التكرار هو طريقة رائعة على ما أعتقد ...إنه يقلل حرفيًا حجم العديد من رؤوس الحلقات بعامل 4 أو أكثر (أنواع التكرار غالبًا ما تكون ...مطول)!

وهذا يعني أيضًا أنك لست مضطرًا إلى إلغاء الإشارة إلى المكرر في نص الحلقة (مع حلقة مكرر تقليدية، عليك دائمًا استخدام *i أو i->... للحصول على قيمة العنصر، ولكن هنا يمكنك فقط استخدام x)، مما يجعل الكود يبدو أجمل بكثير في بعض الحالات.

Unicode، وتعدد مؤشرات الترابط، وجداول التجزئة، والمؤشرات الذكية، والتعبيرات العادية.

ملاحظة :أتساءل لماذا لا يمكنهم إجراء مراجعة كود gr8 وقبول كل التعزيزات وtr1 libs في المعايير وجعل الحياة أسهل للجميع.كل ما يتعين عليهم حله بعد ذلك هو الاتفاق على نموذج عملي اختياري لجمع القمامة.

مؤشرات ذكية.إنه حقًا يُحدث فرقًا كبيرًا في عدم الاضطرار إلى إدارة الذاكرة بشكل صريح للكائنات المخصصة للكومة.

من الواضح أنك لا تزال بحاجة إلى "معرفة ما تفعله"، ولكن في تجربتي، أدى ذلك إلى تقليل عدد الأخطاء المتعلقة بالذاكرة بدرجة واحدة على الأقل من حيث الحجم في البرامج التي عملت معها.

بناء الجملة ينتقل من سيء إلى أسوأ.

تعد القوالب المتنوعة و lambdas رائعة، على الرغم من أن بناء جملة كليهما غير مقبول للأسف.

انا يعجبني constexpr خاصة بالتزامن مع القوالب المتنوعة والقيم الحرفية التي يحددها المستخدم، يمكننا أخيرًا الحصول على القيم الحرفية الثنائية والكثير من الأشياء الجيدة الأخرى.

obj.bitmask |= 00001010B; 

ريجكس!!ومكتبات البرمجة الموازية رغم أنني لا أعرف ميزاتها جميعًا حتى الآن.

حرفية السلسلة الخام!اعتقدت أن كتل السلسلة الشبيهة بالبايثون كانت رائعة، لكنني كنت مخطئًا!في C++ 0x، تعد القيم الحرفية للسلسلة الأولية مفيدة بشكل لا يصدق لتنسيق النص.يمكن كتابة لغات الترميز مباشرة في المصدر الخاص بك!

لقد أحببت حاليًا الكثير من C++0x التي لعبت بها:

  • nullptr
  • static_assert
  • لامدا
  • Shared_ptr و Weak_ptr
  • Unique_ptr
  • نوع ديكل والسيارات

أنا لم أحاول <regexp>...اعتقدت أنها فكرة عظيمة..لكنني لم أخصص حتى الوقت الكافي للنظر إليها.

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