झंडा std=c++1y
साथ बजना 3.5, 3.6, या 3.7, का उपयोग के साथ समारोह प्रोटोटाइप में अनुमति नहीं निम्नलिखित कोड संकलन नहीं करता है:'ऑटो' बजना
#include <iostream>
auto foo(auto bar) { return bar; }
int main() {
std::cout << foo(5.0f) << std::endl;
}
दिया त्रुटि है:
error: 'auto' not allowed in function prototype
मुझे g ++ 4.9 का उपयोग करके त्रुटियां नहीं हैं। क्या यह त्रुटि उत्पन्न हुई है क्योंकि क्लैंग ने अभी तक इस कार्यक्षमता को अभी तक कार्यान्वित नहीं किया है या ऐसा इसलिए है क्योंकि मुझे ऐसा करने की अनुमति नहीं है और जीसीसी किसी भी तरह से इसे अनुमति देता है?
मुझे लगता है कि आपको ऐसा नहीं करना चाहिए क्योंकि आप इसे दायरे से बाहर करते हैं। – Bastien
सामान्य (गैर-लैम्ब्डा) कार्यों के 'ऑटो' फ़ंक्शन पैरामीटर अवधारणाओं टीएस से एक एक्सटेंशन हैं। वे सी ++ 14 का हिस्सा नहीं हैं, जो सी ++ 1y बन गया है। – dyp
बीटीडब्ल्यू, एक (एन अनौपचारिक?) [क्लैंग शाखा] (https://github.com/faisalv/clang/tree/enhanced-auto-c%2B%2B1z) है जो इसका समर्थन करता है। कुछ चर्चा [std-चर्चा मेलिंग सूची] (https://groups.google.com/a/isocpp.org/d/topic/std-discussion/PaKP8EIIlEU/discussion) पर पाई जा सकती है। मुझे नहीं पता कि उस शाखा की वर्तमान स्थिति क्या है। – dyp