मैं इस तरह, टेम्पलेट विशेषज्ञता के कुछ स्थिर सदस्यों को परिभाषित करना चाहते:सी ++ में फ़ंक्शन के बाहर 'उपयोग' कथन के दायरे को कैसे सीमित करें?
namespace A {
{
using T = A1::A2::...::MyClass1;
template <> int C<T>::member1_ = 5;
template <> int C<T>::member2_ = 5;
template <> int C<T>::member3_ = 5;
}
{
using T = B1::B2::...::MyClass2;
template <> int C<T>::member1_ = 6;
template <> int C<T>::member2_ = 6;
template <> int C<T>::member3_ = 6;
}
...
}
:
namespace A {
template <> int C<A1::A2::...::MyClass1>::member1_ = 5;
template <> int C<A1::A2::...::MyClass1>::member2_ = 5;
template <> int C<A1::A2::...::MyClass1>::member3_ = 5;
template <> int C<B1::B2::...::MyClass2>::member1_ = 6;
template <> int C<B1::B2::...::MyClass2>::member2_ = 6;
template <> int C<B1::B2::...::MyClass2>::member3_ = 6;
...
}
लेकिन कोड को आसान बनाने (और यह अधिक संरचित बनाने) के लिए, मैं इस तरह कुछ करना चाहता हूँ
कंपाइलर एक त्रुटि देता है: expected unqualified-id
। क्या "बाहरी" स्थान में using
स्कोप को सीमित करने के तरीके हैं?
क्या आपने सी ++ 11 मोड में संकलित किया था? – TemplateRex
@TemplateRex हाँ, मैं करता हूं। –
मैंने नामस्थान उपनाम का उपयोग करके एक नए दृष्टिकोण के साथ आज के अपने पहले के उत्तर को हटा दिया। – TemplateRex