जीसीसी 4.9 निम्नलिखित कोड की अनुमति देता है, लेकिन जीसीसी 4.8 और क्लैंग 3.5.0 इसे अस्वीकार कर देता है।एक नियमित कार्य में एक पैरामीटर के रूप में ऑटो एक जीसीसी 4.9 एक्सटेंशन है?
void foo(auto c)
{
std::cout << c.c_str();
}
मैं 4.9 में warning: ISO C++ forbids use of 'auto' in parameter declaration [-Wpedantic]
मिलता है लेकिन 4.8 और बजना में मैं error: parameter declared 'auto'
मिलता है।
जीसीसी 4.9.1 के साथ, 'g ++ -std = C++ 11' मुझे "चेतावनी देता है: पैरामीटर घोषणा में' ऑटो 'का उपयोग केवल -std = C++ 1y या -std = gnu ++ 1y के साथ उपलब्ध है "। 'G ++ -std = C++ 14' के साथ कोई चेतावनी नहीं है। –
@ किथ थॉम्पसन, अजीब, यह निश्चित रूप से सी ++ 14 का हिस्सा नहीं है (लैम्बडास, हां, लेकिन अन्य कार्यों में नहीं)। – chris
@ क्रिस: जीसीसी 4.9.1 के साथ खेलना, [यहां एक उदाहरण है] (http://codepad.org/mm1jRI4X)। Codepad.org द्वारा उपयोग किया गया कंपाइलर इसे संभाल नहीं करता है, लेकिन मुझे आउटपुट की 4 लाइनें अपेक्षित आकार और प्रत्येक पंक्ति पर मूल्य के साथ मिलती हैं। स्पष्ट रूप से 'foo' टेम्पलेट की तरह कार्य करता है। –