साल पहले मुझे विश्वास था कि सी सी ++ की तुलना में बिल्कुल शुद्ध था क्योंकि संकलक कोई भी कोड उत्पन्न नहीं कर सका जिसे आप भविष्यवाणी नहीं कर सके। अब मुझे लगता है कि काउंटर उदाहरणों में volatile
कीवर्ड और मेमोरी बाधाएं शामिल हैं (मल्टीप्रोसेसर प्रोग्रामिंग या मेमोरी मैप किए गए हार्डवेयर उपकरणों के लिए डिवाइस ड्राइवरों में, जहां सादा असेंबली भाषा सी संकलक के अनुकूलन से भी अधिक शुद्ध होगी)।सी ++ में गलती से अस्थायी वस्तुओं को बनाने के तरीके?
फिलहाल मैं अप्रत्याशित चीजों की गणना करने की कोशिश कर रहा हूं, एक सी ++ कंपाइलर कर सकता है। सी ++ के बारे में मेरे दिमाग में चिपकने वाली मुख्य शिकायत यह है कि संकलक अस्थायी रूप से अस्थायी वस्तुओं को तुरंत चालू करेगा, लेकिन मेरा मानना है कि इन मामलों की सभी उम्मीद की जा सकती है। मामलों मैं सोच रहा हूँ कर रहे हैं:
- जब एक वर्ग एक प्रकार खुद के अलावा किसी अन्य के लिए एक प्रतिलिपि निर्माता को परिभाषित करता है,
explicit
कीवर्ड - का उपयोग करते समय एक वर्ग एक ओवरलोड रूपांतरण ऑपरेटर को परिभाषित करता है बिना:
operator()
- जब एक समारोह मूल्य के बजाय संदर्भ द्वारा किसी वस्तु को स्वीकार करता है
- एक समारोह मूल्य के बजाय संदर्भ
द्वारा एक वस्तु देता है जब कर रहे हैं किसी और को फिर से?
+1: दिलचस्प जब यह एम्बेडेड सिस्टम के लिए आता है। – jldupont
ये सभी मानक में परिभाषित हैं और इसलिए भविष्यवाणी की जा सकती है - जिनकी भविष्यवाणी नहीं की जा सकती है वे अनिर्धारित व्यवहार – Mark
सी में आपके पास अंतर्निहित रूपांतरण हैं (इसलिए), इसलिए मैं यह नहीं कहूंगा कि यह "शुद्ध" है। – Manuel