كيفية استخدام الفصول المحلية مع القوالب؟
-
02-10-2019 - |
سؤال
لا يبدو أن مجلس التعاون الخليجي يوافق على قوالب محلية مع الطبقات المحلية:
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:
لا يجوز استخدام نوع محلي ، نوع بدون ارتباط ، نوع لم يكشف عن اسمه أو نوع مركب من أي من هذه الأنواع كحجة قابلة للمعلمة من نوع القالب.
لا تنتمي إلى StackOverflow