निम्नलिखित कोड पर विचार करें:,टेम्पलेट तर्क के रूप में कास्टिंग सूचक: Comeau और MSVC संकलन, जीसीसी में विफल रहता है
template<int* a>
class base {};
int main()
{
base<(int*)0> test;
return 0;
}
दोनों Comeau और MSVC मुद्दों के बिना इस संकलन (Comeau एक अप्रयुक्त चर के बारे में चेतावनी को छोड़ कर), जबकि जीसीसी में विफल रहता है base<(int*)0> test;
लाइन करते हुए कहा पर
In function `int main()': a casts to a type other than an integral or enumeration type cannot appear in a constant-expression
template argument 1 is invalid
वास्तव में यह क्या है के बारे में शिकायत की जाती है? और कौन सही है - क्या यह कोड संकलित होना चाहिए? यह ध्यान देने योग्य है कि मेरा जीसीसी संस्करण है अत्यधिक पुराना (3.4.2) ताकि उसके साथ कुछ करने के लिए हो। धन्यवाद।
FYI करें: test.cpp:: 6: त्रुटि: एक प्रकार का अभिन्न या गणना प्रकार के अलावा अन्य करने के लिए एक डाली एक निरंतर अभिव्यक्ति में प्रकट नहीं कर सकते हैं test.cpp: 6: त्रुटि: टेम्पलेट जीसीसी 4.4.1 के साथ तर्क 1 अमान्य है test.cpp: 6: त्रुटि: ';' से पहले घोषणा में अमान्य प्रकार टोकन – jdehaan
धन्यवाद jdehaan, तो हम जानते हैं कि मेरे संस्करण के साथ इसका कोई लेना-देना नहीं है। – GRB
उर स्वागत है। मैंने इसे संकलित करने के लिए थोड़ा सा कोड संशोधित करने का प्रयास किया। थोड़ा बदलाव ने समस्या को स्पष्ट नहीं किया ... – jdehaan