यदि कोई फ़ंक्शन टेम्पलेट decltype(auto)
(या auto
का उपयोग करके अन्य प्रकार का विनिर्देशक) लौटाता है लेकिन वापसी का विवरण खराब हो जाएगा, तो SFINAE परिणाम क्या होता है? return
कथन फ़ंक्शन हस्ताक्षर का तत्काल संदर्भ माना जाता है?SFINAE और decltype (auto)
N3690 ड्राफ्ट में कुछ भी इसकी आवश्यकता नहीं है। डिफ़ॉल्ट रूप से, मुझे लगता है कि SFINAE लागू नहीं होता है।
यह दुर्भाग्यपूर्ण लगता है क्योंकि आप किसी अन्य फ़ंक्शन को आगे बढ़ाने के लिए एक फ़ंक्शन लिख सकते हैं, लेकिन आप लंबे समय तक लिखते समय प्रतिनिधि पर अपने अस्तित्व को सशर्त नहीं बना सकते हैं। इसके अलावा, एक पीयर नॉनस्टैटिक सदस्य फ़ंक्शन के अस्तित्व की जांच decltype(auto)
के बिना नहीं की जा सकती है क्योंकि this
फ़ंक्शन हस्ताक्षर में उपयोग नहीं किया जा सकता है। हालांकि यह एक मौलिक समस्या को इंगित करता है, क्योंकि decltype(auto)
वर्ग प्रकार पर विचार करने के लिए एक सदस्य हस्ताक्षर के भीतर पूरा करने का मार्ग प्रदान करता है, जहां यह नहीं है।
क्या कोई प्रस्ताव लिखा गया है, या समस्या को औपचारिक रूप से कहीं भी विश्लेषण किया गया है?
किसी सदस्य हस्ताक्षर के भीतर कक्षा के प्रकार को पूरा करने की क्षमता के अन्य प्रभाव हो सकते हैं ... लेकिन यह सिर्फ एक और प्रश्न के लिए चारा है।
मैं बिल्कुल यह सोच रहा था। अफसोस की बात है, मैं भी 1y प्रस्तावों का पालन करने के लिए बहुत आलसी रहा है ... – sehe
@MarkGarcia हाँ, यह एक दिया गया है। मैंने अभी प्रश्न के अंत में एक नोट जोड़ा; गैर-टेम्पलेट सदस्य अभी भी ट्वाइलाइट जोन पर एक वर्महोल खोल सकते हैं। – Potatoswatter
यदि प्रश्न में कुछ उदाहरण थे, तो मेरे जैसे बेवकूफों के लिए समझना आसान होता। :) – iammilind