के लिए अनिर्धारित संदर्भ यह सबसे आसान उदाहरण है जिसके साथ मैं समस्या उत्पन्न कर सकता हूं।एक स्थिर स्थानीय चर
template<class T>
struct X
{
static void foo()
{
static int z = 0;
[]{ z = 1; }();
}
};
int main()
{
X<int>::foo();
return 0;
}
मैं MinGW 4.6 और 4.7 के साथ यह कोशिश की है, उबंटू में भी जी ++ 4.6 और उन सभी मुझे लिंक त्रुटि "` z 'को अपरिभाषित संदर्भ "देते हैं। तो अब यह मुझे आश्चर्यचकित करता है कि यह कानूनी भी है। वीसी 10 में इसके साथ कोई समस्या नहीं है।
यह काम करता है यदि एक्स टेम्पलेट के बजाय एक्स सामान्य वर्ग है। साथ ही, मुझे नहीं लगता कि यह लैम्ब्डा से संबंधित है क्योंकि मुझे स्थानीय क्लास के साथ लैम्ब्डा को प्रतिस्थापित करने के बावजूद त्रुटि मिलती है।
सी ++ 11 टैग जोड़ें, शायद यह आपको बेहतर प्रतिक्रिया देगा – marcinj