यह सवाल आता है में स्थिरांक संदर्भ द्वारा पारित कर दिया है, तो यह एक से सूचक को क्षय नहीं करता है:सरणी एक टेम्पलेट समारोह
c++ pass array to function question
लेकिन मुझे लगता है कि कोई भी अब इसे पढ़ा जाएगा के बाद से ओपी एक जवाब स्वीकार कर लिया।
मैंने इस कोड को g ++ पर आजमाया। ऐसा लगता है कि जब इस समारोह के लिए पारित किया है कि सरणी एक सूचक को क्षय नहीं करता है (समारोह उचित परिणाम देता है):
#include <iostream>
template <typename T>
std::size_t size_of_array (T const & array)
{
return sizeof (array)/sizeof (*array);
}
int main()
{
int a [5];
std::cout << size_of_array (a) << '\n';
}
किसी अन्य उपयोगकर्ता (sharptooth) ने कहा कि वह कुलपति ++ 10 बंद इनलाइन करने के साथ पर एक ही व्यवहार किया है।
क्या कोई समझा सकता है? धन्यवाद।
मेरा जंगली अनुमान यह है कि 'टी' प्रकार 'int [5]' जैसा दिखता है, इसलिए पॉइंटर को क्षय की कोई आवश्यकता नहीं है। लेकिन मैं कोई विशेषज्ञ नहीं हूँ। – Constantinius