यहाँ के साथ विभाजन गलती, कोडआंतरिक संकलक त्रुटि: जी ++ 4.3.5
//fail_.cpp
template< unsigned char X, class L>
class A {
public:
typedef void (A::*fptr)();
class B {
public: B(typename A< X, L> ::fptr);
};
};
template < unsigned char X, typename L >
A<X,L>::B::B (fptr) { }
g++ -c fail_.cpp
fail_.cpp:11: internal compiler error: Segmentation fault
Please submit a full bug report, with preprocessed source if appropriate.
See < file:///usr/share/doc/gcc-4.3/README.Bugs > for instructions.
जी ++ 4.3.5 में मेरे लिए एक बग की तरह लग रहा है देता है जी ++ 4.4 और उच्चतर इस तरह के segfault नहीं देते हैं।
आप क्या सोचते हैं? क्या कोड के साथ कुछ गड़बड़ है?
एक आंतरिक कंपाइलर त्रुटि हमेशा एक बग है। यदि कोड के साथ कुछ गड़बड़ है तो संकलक को वास्तविक त्रुटि संदेश उत्पन्न करना चाहिए, क्रैश नहीं। –
मुझे ठीक लग रहा है। शायद मैंने आंतरिक वर्ग को 'कक्षा बी {सार्वजनिक: बी (fptr) में सरल बनाने की कोशिश की होगी; }; '। टाइपपीफ वहां दिखाई देनी चाहिए। –
दिलचस्प बात यह है कि, यदि मैं * परिभाषा * में 'टाइपनाम ए < X, L> :: fptr' लिखता हूं, तो यह ठीक से संकलित करता है: http://ideone.com/0OOpn – Nawaz