2015-06-01 27 views
7

static सीटी ++ में inline फ़ंक्शन के स्थानीय चर के अस्तित्व की गारंटी है, यदि मेरी समझ सही है, तो एक वैश्विक वैरिएबल होने की गारंटी है।एक टेम्पलेट 'इनलाइन` फंक्शन

क्या यह लागू होता है यदि inline फ़ंक्शन एक टेम्पलेट है, जहां संकलक फ़ंक्शन के कई संस्करण उत्पन्न कर सकता है? http://www.geeksforgeeks.org/templates-and-static-variables-in-c/

संक्षेप में:: संकलक प्रत्येक टेम्पलेट के लिए एक स्थिर चर पैदा करता

+0

अब कई पुस्तकालयों में एक वैश्विक 'inline' चर (या एक टेम्पलेट' इनलाइन के लिए रास्ता है 'एकाधिक अनुवाद इकाइयों में चर)। कोई मानकीकृत लिंकिंग नहीं है। –

+0

@ डाइटर लुकिंग क्या आपका मतलब है कि 'इनलाइन' परिवर्तनीय प्रस्ताव को अगले मानक में शामिल करने के लिए स्वीकार किया गया था? – xiver77

+0

@ xiver77: कोई सुराग नहीं - क्या आप एक लिंक प्रदान कर सकते हैं –

उत्तर

4

निम्न आलेख आप बहुत अच्छी तरह से सवाल का जवाब चाहिए।

आप सभी टेम्पलेट्स के लिए एक ही चर करना चाहते हैं तो आप शायद कुछ इस तरह की कोशिश कर सकते हैं:

int& hack() 
{ 
    static int i = 10; 
    return i; 
} 

template <typename T> 
void fun(const T& x) 
{ 
    int &i = hack(); 
    cout << ++i; 
    return; 
} 
संबंधित मुद्दे