std::array<int,0>
, आकार शून्य की सरणी का क्या अर्थ है?std :: आकार शून्य का सरणी
मैं इसे पोस्ट करने से पहले SO में समान प्रश्नों से गुजर चुका हूं, और उन सभी प्रश्न सरल सरणी प्रकार और सी भाषा के लिए हैं और उनमें से अधिकतर कहते हैं कि यह अवैध है। लेकिन सी ++ array<int,0>
में अनुमति है।
प्रति cppreference.com
वहाँ एक शून्य लंबाई सरणी (एन == 0) के लिए एक विशेष मामला है। उस स्थिति में,
array.begin() == array.end()
, जो कुछ अद्वितीय मूल्य है। शून्य आकार के सरणी परfront()
याback()
पर कॉल करने का प्रभाव अपरिभाषित है।
इसे अवैध क्यों नहीं माना जाता है?
क्योंकि टेम्पलेट कोड इस तरह से कुछ फायदा उठा सकता है। – sbabbi
यह अवैध क्यों होना चाहिए? अगर मैं स्पष्ट रूप से उस मामले को 'सरणी' संभालने की बजाय शून्य आकार के सरणी से बचने के लिए अपने कोड में विशेष मामलों को जोड़ना चाहता हूं तो मुझे परेशान होना पड़ेगा। –
@ माइकसेमोर 'int x [0]; * * अवैध है। मुझे लगता है कि सवाल यह है कि अंतर क्यों है। – Angew