struct X{};
template<class T>
decltype(X() == int()) f(T const&){ return true; }
int main(void) {
X x;
f(x);
}
क्यों, क्यों? परिभाषित कहीं भी नहीं है!निम्न कोड MSVC++ के साथ संकलित क्यों करता है?
मैं वास्तव में समझना चाहता हूं कि एमएस कनेक्ट पर विस्तृत बग रिपोर्ट प्रदान करने के लिए यहां क्या हो रहा है। पागलपन के लिए अपनी यात्रा के आसपास here लाउंज < सी ++> चैट रुम में शुरू हुआ ...
(नोट: न तो GCC है और न ही बजना इस कोड को स्वीकार करते हैं।)
ओह, और btw, एक निजी X(int)
ctor का कारण बनता है जोड़ने संकलन विफल:
struct X{
X(){}
private:
X(int);
};
template<class T>
decltype(X() == int()) f(T const&){ return true; }
int main(void) {
X x;
f(x);
}
आउटपुट:
1>src\main.cpp(12): error C2248: 'X::X' : cannot access private member declared in class 'X'
1> src\main.cpp(4) : see declaration of 'X::X'
1> src\main.cpp(1) : see declaration of 'X'
क्या अन्य कंप्यूटर्स इसे स्वीकार करते हैं? –
@ बिली: नहीं, उस जानकारी को जोड़ा गया। पृष्ठभूमि की जानकारी: मैं लगभग एमएसवीसी सी ++ चैटरूम में क्या करता हूं और कुछ घंटों के बाद छोड़ दिया गया है पर पागल हो गया। – Xeo
पृष्ठभूमि जानकारी का एक बिट जोड़ा गया। इसके अलावा, क्या अनाम डाउनवॉटर कृपया डाउनवोट के कारण को सुन सकता है? – Xeo