मैं इन सबसे छुटकारा छोरों सी शैली ताररेंज अशक्त पर छोरों के लिए आधारित समाप्त तार
void print_C_str(const char* str)
{
for(char c : str)
{
cout << c;
}
}
का समर्थन करेगा के लिए आधारित है कि सीमा मान लिया हालांकि यह स्थिति नहीं है, मानक [stmt.ranged] (6.5.4)
का कहना है कि सीमा के आधार पर-के लिए 3 संभावनाओं में से एक में काम करता है:
- रेंज एक सरणी
- रेंज एक प्रतिदेय
begin
औरend
विधि के साथ एक वर्ग है
जब मैं ग्लोबल नेम स्पेस में const char*
के लिए begin
और end
कार्यों को जोड़ने मैं अभी भी (दोनों VS12 और जीसीसी 4.7 से) त्रुटियों मिल एक संबद्ध नाम स्थान (प्लस std
नाम स्थान) में ADL से पहुंचा जा सकता है।
वहाँ एक रास्ता रेंज आधारित के लिए छोरों सी शैली तार के साथ काम करने के लिए है?
मैं namespace std
के लिए एक अधिभार जोड़ने की कोशिश की और यह काम किया, लेकिन मेरी समझ में यह namespace std
के भार के जोड़ने के लिए अवैध है (यह सही है?)
आप कानूनी तौर पर एसटीडी नाम स्थान में टेम्पलेट्स विशेषज्ञ कर सकते हैं। – inf
@ बांसबोन सच है लेकिन आईआईआरसी केवल उपयोगकर्ता परिभाषित प्रकारों के लिए है और यह एक अधिभार है और एक अंतर्निहित प्रकार के लिए नहीं, एक यूडीटी नहीं है। – Motti
आप सी तारों के आसपास क्यों गुजर रहे हैं? –