2017-05-19 15 views
6

के लिए शून्य विशेषज्ञता को हटाकर कागज के संबंध में जो std :: भविष्य और std :: वादा P0241R0 के लिए शून्य विशेषज्ञता को हटाने का वर्णन करता है। यह एक बेवकूफ सवाल हो सकता है लेकिन प्रस्तावित समाधान पूरी तरह से शून्य विशेषज्ञता को दूर करना है, लेकिन फिर std::future<void> ऑब्जेक्ट को तुरंत चालू करने के लिए लोगों को क्या करने की उम्मीद है?std :: भविष्य और std :: वादे

उत्तर

5

संदर्भ में उल्लेख किया गया है, यह संभव होगा if void were a regular type

void get_value() { 
    void x; 
    return x; 
} 

यह किसी अन्य भाषा में काम करता है, इसलिए यह बिना किसी उदाहरण के है। अन्य भाषाओं में इसे "यूनिट" प्रकार कहा जाता है, क्योंकि इसमें बिल्कुल एक संभावित मूल्य है। (अन्य भाषाओं में "शून्य" प्रकार भी है, जिसमें कोई संभावित मान नहीं है, इसलिए यदि आप एक बनाने की कोशिश करते हैं तो आपको एक त्रुटि मिलती है। इसका नाम "शून्य" है लेकिन यह शून्य पॉइंटर्स से असंबंधित है।)

+4

सीधे "क्या करने की उम्मीद है" प्रश्न का उत्तर देने के लिए - वे कुछ भी अलग नहीं हैं _। 'भविष्य ' दूर नहीं जाता है, इसे केवल विशेषज्ञता की आवश्यकता नहीं है। –

+0

@DrewDormann: जो मैं समझता हूं उससे आपको कुछ बदलाव करना होगा, क्योंकि 'std :: वादा 'विशेषज्ञता का अर्थ यह होगा कि' set_value()' फ़ंक्शन मौजूद नहीं है, और आपको 'set_value' कॉल करना होगा ({}) 'इसके बजाए। –

-3

का उद्देश्य std :: भविष्य को जानना है कि जब कोई वास्तविक मूल्य वापसी की प्रक्रिया समाप्त हो जाती है। तो मूल रूप से यह एक सिंक्रनाइज़ेशन उपकरण है।

+0

यह सवाल का जवाब नहीं देता है। –

संबंधित मुद्दे