"C ++ टेम्प्लेट्स: द कम्प्लीट गाइड" (c) 2002 - C ++ 11 की तारीख तक?


10

पुस्तक C ++ टेम्प्लेट्स: द कम्प्लीट गाइड , (c) 2002, मुझे बहुत अच्छी लगती है, लेकिन जैसा कि यह 12 साल पुराना है, मुझे चिंता है कि यह पुराना हो सकता है। हाल ही में एक साल पहले की तरह कुछ अत्यधिक अनुकूल अमेज़ॅन समीक्षाएं हैं, और मुझे सी ++ टेम्पलेट्स पर कोई अन्य बहुत हालिया शीर्षक नहीं दिखता है। क्या किसी को पता है कि 2002 में प्रकाशित टेम्प्लेट के बारे में एक पुस्तक (एसटीएल के बारे में विशेष रूप से एक पुस्तक के विपरीत) में वाक्यविन्यास या अवधारणाएं होंगी जो सी ++ 11 द्वारा कहे गए या जोड़ दी गई हैं?

निम्नलिखित अमेज़न पुस्तक विवरण से है :

टेम्प्लेट C ++ की सबसे शक्तिशाली विशेषताओं में से हैं, लेकिन वे अक्सर उपेक्षित, गलत समझी जाती हैं और उनका दुरुपयोग किया जाता है। C ++ टेम्प्लेट्स: कम्प्लीट गाइड सॉफ्टवेयर आर्किटेक्ट्स और इंजीनियरों को इस बात की स्पष्ट समझ प्रदान करता है कि क्यों, कब, और कैसे सॉफ्टवेर, फास्ट और स्मार्ट सॉफ्टवेयर को अधिक कुशलता से बनाने और बनाए रखने के लिए टेम्प्लेट का उपयोग किया जाता है।

C ++ टेम्प्लेट मूल अवधारणाओं और भाषा सुविधाओं पर एक व्यावहारिक ट्यूटोरियल के साथ शुरू होता है। पुस्तक का शेष भाग एक व्यापक संदर्भ के रूप में कार्य करता है, पहले भाषा के विवरण पर ध्यान केंद्रित करता है, फिर कोडिंग तकनीकों की एक विस्तृत श्रृंखला पर और अंत में टेम्पलेट्स के लिए उन्नत अनुप्रयोगों पर। पुस्तक में प्रयुक्त उदाहरण अमूर्त अवधारणाओं को चित्रित करते हैं और सर्वोत्तम प्रथाओं को प्रदर्शित करते हैं।

पाठक सीखें

  • टेम्पलेट्स का सटीक व्यवहार
  • टेम्प्लेट से जुड़े नुकसान से कैसे बचें
  • मुहावरों और तकनीकों, मूल से पहले अनिर्दिष्ट
  • प्रदर्शन या सुरक्षा को धमकी दिए बिना स्रोत कोड का पुन: उपयोग कैसे करें
  • C ++ प्रोग्राम्स की दक्षता कैसे बढ़ाएं
  • अधिक लचीले और बनाए रखने योग्य सॉफ्टवेयर का उत्पादन कैसे करें

2
जैसा कि C ++ भाषा में ही धीरे-धीरे परिवर्तन होता है (बड़े बदलाव केवल हर 10 साल में किए जाते हैं) और काफी हद तक पीछे की ओर संगत रहता है, C ++ की किताबें इतनी तेजी से नहीं बढ़ती हैं।
बार्ट वैन इनगेन शेनौ

जवाबों:


12

अपडेट किया गया (2016/08/24)

C ++ 11 पर ध्यान देने के साथ अनुशंसित लेख:

C ++ की SFINAE अवधारणा का एक परिचय: एक कक्षा सदस्य (जीन Guegant) का संकलन-समय आत्मनिरीक्षण


कुछ महीनों पहले C ++ टेम्पलेट मेटाप्रोग्रामिंग के एक शिक्षार्थी के रूप में, मैं अभी भी इस पुस्तक को पढ़ने की सिफारिश करूंगा।

इसमें C ++ 11 शामिल नहीं है, लेकिन यह सिंटैक्स और C ++ विनिर्देशों को पूरा करता है कि कैसे एक कंपाइलर को टेम्पलेट कोड को संसाधित करना चाहिए। पुस्तक में बहुत कम ज्ञात कोनों को शामिल किया गया है जो महत्वपूर्ण हो जाएंगे यदि आपको सी ++ टेम्पलेट का उपयोग करने की आवश्यकता है, तो मेटाप्रोग्रामिंग शामिल है या नहीं।


C ++ 11 से लापता भाग हैं:


एक निर्माण है जो आपको कोड में बहुत कुछ दिखाई देगा जो कि स्टैकओवरफ़्लो पर चिपकाया गया है std::enable_if:। हालाँकि, व्यवहार में, मुझे वन-डेफिनिशन नियम और SFINAE के कारण इसका उपयोग करना काफी कठिन लगता है। यही कारण है कि यह पुस्तक महत्वपूर्ण है, क्योंकि यह मूल बातों से अधिक है।


यदि आप क्रॉस-प्लेटफॉर्म लाइब्रेरी में C ++ टेम्प्लेट का पर्याप्त उपयोग करते हैं, तो आपको विभिन्न कंपाइलरों में अपने कोड का परीक्षण-संकलन करने की आवश्यकता होगी। ऐसा इसलिए है क्योंकि प्रत्येक संकलक के पास C ++ विनिर्देशन के अनुपालन के विभिन्न स्तर हैं। कोड जो एक पर ठीक संकलित करता है, दूसरे द्वारा अस्वीकार किया जा सकता है, और कभी-कभी संकलक जो इसे स्वीकार करता है वह एक है जो विनिर्देश को तोड़ता है।


इस पुस्तक के माध्यम से जाने पर मेरे पढ़ने के नोट्स यहां दिए गए हैं। आशा है कि यह मददगार होगा।

पुस्तक पढ़ने के नोट्स - C ++ टेम्प्लेट्स - द कम्प्लीट गाइड (2003)

  • Ch 2.5 - फ़ंक्शन टेम्प्लेट - सारांश
    • अधिभार संकल्प, और सर्वोत्तम प्रथाओं
  • Ch 3.3 - क्लास टेम्प्लेट्स की विशेषज्ञता
  • च 3.4 - आंशिक विशेषज्ञता
    • अस्पष्टता (ODR त्रुटि), और इसे कैसे हल किया जाए। ओडीआर = एक-परिभाषा नियम
  • Ch 4.3 - गैर-प्रकार टेम्पलेट पैरामीटर के लिए प्रतिबंध
    • उदाहरण: बाहरी लिंकेज के साथ स्ट्रिंग शाब्दिक
  • Ch 5 और Ch 6 - ये दो अध्याय बहुत निराशाजनक हैं। आप इसे छोड़ना चाहते हैं और तब वापस जा सकते हैं जब आप टेम्पलेट्स का उपयोग करने के लिए भावनात्मक रूप से तैयार हैं।

  • भाग II (Ch 8 - Ch ???) उन्नत सामान का अनुभाग।

  • Ch 8 - अधिक नियम

    • एक प्रोग्रामर के लिए जो पहले से ही पूरे Ch 3 (क्लास टेम्प्लेट - बेसिक्स) से परिचित है, Ch 8.1 और 8.2 को Ch 3 के तुरंत बाद पढ़ा जाना चाहिए, क्योंकि अतिरिक्त नियम मूल नियमों की तरह ही महत्वपूर्ण और प्रासंगिक हैं। इससे कुछ दर्द से बचा जा सकेगा।
  • Ch 8.3.1 (12 वीं प्रिंटिंग में पृष्ठ 106) में पहली बार SFINAE का उल्लेख है।

  • Ch 8.3 - यह खंड बहुत सारी परिस्थितियों का परिचय देता है जहाँ टेम्पलेट तर्क प्रतिस्थापन के कारण निरर्थक वाक्य-विन्यास का विस्तार होता है (और इस प्रकार अमान्य हो जाता है, जो बदले में SFINAE की आवश्यकता होती है)। इस अध्याय में अनुभवी C ++ प्रोग्रामर के लिए भी एक महत्वपूर्ण सीखने की अवस्था है।
  • Ch 11 - टेम्पलेट तर्क कटौती

    • Ch11 में कुछ कंट्रोल्ड टेम्प्लेट आर्ग्युमेंट डेडक्शन उदाहरण हैं जो कुछ समान रूप से वंचित SFINAE अनुप्रयोगों को समझने के लिए आवश्यक हैं।
  • Ch 12.4 आगे - आंशिक वर्ग टेम्पलेट विशेषज्ञता।

    • यह आंतरिक यांत्रिकी को कवर करता है जिसे अक्सर SFINAE एप्लिकेशन में कहा जाता है।

भाग III (Ch 17 - Ch ???) Metaprogramming।

  • Ch 17 - परिचयात्मक कार्यात्मक प्रोग्रामिंग के साथ शुरू होता है।

  • अनुप्रयोग। A.3 - वन-डेफिनिशन रूल (ODR) विस्तार से।


3
टीएमपी के पूर्व-सी ++ 11 चर्चा के साथ समस्या यह है कि यह कवर नहीं constexprकरेगा और इसलिए सभी मेटाप्रोग्रामिंग के लिए टीएमपी की सिफारिश करेगा, यहां तक ​​कि ऐसे मामले जहां constexprफ़ंक्शन और प्रकार कहीं अधिक उपयुक्त होंगे।
बेन वोइगट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.