आज मेरे दोस्तों में से एक ने मुझे बताया कि निम्नलिखित कोड अपने विजुअल स्टूडियो 2008 पर अच्छी तरह से संकलित:विज़ुअल सी ++ कंपाइलर आश्रित-नाम को "टाइपनाम" के बिना एक प्रकार के रूप में अनुमति देता है?
#include <vector>
struct A
{
static int const const_iterator = 100;
};
int i;
template <typename T>
void PrintAll(const T & obj)
{
T::const_iterator *i;
}
int main()
{
std::vector<int> v;
A a;
PrintAll(a);
PrintAll(v);
return 0;
}
मैं आमतौर पर जी ++ का उपयोग करें, और यह हमेशा दूसरे PrintAll() कॉल पारित करने के लिए इंकार कर दिया। जैसा कि मुझे पता है, इस समस्या के लिए, g ++ टेम्पलेट का अनुवाद करने का मानक तरीका कर रहा है।
तो, क्या मेरा ज्ञान गलत है, या यह वीएस -2008 का विस्तार है?
क्या यह/ज़ा (सख्त) या/ज़ी (डिफ़ॉल्ट, एक्सटेंशन) है? – MSalters
@MSalters: मैंने अभी/ज़ा के साथ प्रयास किया। कोई फर्क नहीं पड़ता ... – hpsMouse