الصفحة الرئيسية لمجموعات Google
تعليمات | تسجيل الدخول
Template method implicit instanciation : compiles with Intel ICPC11, not with G++4.x
هناك حالياً عدة مواضيع في هذه المجموعة يتم عرضها كأول موضوع. لجعل هذا الموضوع يظهر كأول موضوع، الرجاء إزالة هذا الخيار من المواضيع اﻷخرى.
وقع خطأ في معالجة طلبك. الرجاء حاول مجددا.
تمييز
  رسالة واحدة - طي الكل
المجموعة التي تقوم بالإرسال إليها هيمجموعة Usenet. الرسائل المرسلة لهذه المجموعة ستجعل بريدك مرئيًا لأي فرد على شبكة الإنترنت
لم يتم إرسال رسالة الرد حتى الآن.
تم النشر الخاص بك بنجاح
 
من:
إلى:
نسخة إلى:
استجابةً إلى:
أضف "نسخة إلى" | أضف "استجابةً إلى" | تحرير الموضوع
الموضوع:
التحقق:
لغرض التحقق من الصحة، يرجى كتابة الحروف التي تراها في الصورة أدناه أو الأرقام التي تسمعها عند النقر فوق رمز وصول ذوي الاحتياجات الخاصة. استمع وإكتب الأرقام التي تسمعها
 
alban.lin...@gmail.com  
عرض ملف التعريف
 خيارات أكثر 1 ديسمبر 2008, 18:21
مجموعات أخبار: comp.lang.c++
من: Alban.Lin...@gmail.com
التاريخ: Mon, 1 Dec 2008 08:21:48 -0800 (PST)
محلّي: ‏الاثنين 1 ديسمبر 2008 18:21‏
الموضوع: ‏Template method implicit instanciation : compiles with Intel ICPC11, not with G++4.x‏
Hi,
i cannot explain why g++ complains about the code below:

#include <cstdlib>

namespace a
{
  struct tags
  {
    enum value_type { A0, A1 };
  };

  template < tags::value_type Tag >
  struct element;

  template <>
  struct element< tags::A0 >
  {};

  template <>
  struct element< tags::A1 >
  {};

}

namespace b
{
  struct tags
  {
    enum value_type { B0, B1 };
  };

  template < tags::value_type Tag >
  struct element;

  template <>
  struct element< tags::B0 >
  {};

  template <>
  struct element< tags::B1 >
  {};

}

namespace c
{

  template < typename tags, template < typename tags::value_type >
class Element >
  struct all
  {
    template < typename tags::value_type Tag >
    all(Element< Tag >)
    {}
  };

}

typedef c::all< a::tags, a::element > a_type;
typedef c::all< b::tags, b::element > b_type;
typedef a::element< a::tags::A0 >     a0_type;
typedef b::element< b::tags::B0 >     b0_type;

int main()
{
  a0_type a0;
  b0_type b0;
  b_type b_instance(b0);
  a_type a_instance(a0);
  return  EXIT_SUCCESS;

}

Intel ICPC compiles it and it works well, but g++ tells:
error: no matching function for call to 'c::all<a::tags,
a::element>::all(a0_type&)'
note: candidates are: c::all<a::tags, a::element>::all(const
c::all<a::tags, a::element>&)

Can someone explain me this behavior ?
Thanks,
Alban Linard


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

إنشاء مجموعة - مجموعات Google - صفحة Google الرئيسية - شروط الخدمة - سياسة الخصوصية
©2009 Google