سؤال

لا يبدو أن مجلس التعاون الخليجي يوافق على قوالب محلية مع الطبقات المحلية:

template <typename T>
void f(T);

void g()
{
    struct s {};

    f(s()); // error: no matching function for call to 'f(g()::s)'
}

VC لا يشكو.

كيف ينبغي أن يتم ذلك؟

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

المحلول

في C ++ 03 لا يمكن القيام به ، سوف C ++ 0x يرفع هذا التقييد رغم ذلك.

C ++ 03 ، §14.3.1/2:

لا يجوز استخدام نوع محلي ، نوع بدون ارتباط ، نوع لم يكشف عن اسمه أو نوع مركب من أي من هذه الأنواع كحجة قابلة للمعلمة من نوع القالب.

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