मैं C ++ पुस्तकालयों के लिए अच्छे API डिज़ाइन के बारे में सीखने के लिए एक अच्छे संसाधन की तलाश कर रहा हूँ, साझा किए गए ऑब्जेक्ट्स / dlls आदि को देख रहा हूँ। अच्छे APIs, अच्छी कक्षाएं, टेम्प्लेट इत्यादि लिखने के कई संसाधन स्रोत स्तर पर हैं, लेकिन मुश्किल से कुछ भी साझा काम और निष्पादन योग्य चीजों को एक साथ रखना। जॉन लैक्स द्वारा लार्ज-स्केल C ++ सॉफ्टवेयर डिज़ाइन जैसी किताबें दिलचस्प लेकिन व्यापक रूप से पुरानी हैं।
मैं जो देख रहा हूं वह सलाह है यानी टेम्पलेट्स को संभालने पर। मेरे एपीआई में टेम्पलेट्स के साथ मैं अक्सर अपने निष्पादन योग्य (या अन्य पुस्तकालय) में पुस्तकालय कोड के साथ समाप्त होता हूं, इसलिए यदि मैं एक बग को ठीक करता हूं तो मैं बस नई लाइब्रेरी को रोल आउट नहीं कर सकता, लेकिन उस कोड के सभी क्लाइंट को फिर से इकट्ठा करना और पुनर्वितरित करना होगा। (और हां, मैं कुछ समाधानों को जानता हूं जैसे कि लाइब्रेरी आदि के अंदर कम से कम सबसे सामान्य संस्करणों को तुरंत करने की कोशिश करना)
मैं C ++ पुस्तकालयों पर काम करते समय द्विआधारी संगतता रखने के लिए अन्य कैविएट और चीजों की भी तलाश कर रहा हूं।
क्या ऐसी चीजों पर कोई अच्छी वेबसाइट या किताब है?
std::unique_ptr
बहुत नया सामान है। वास्तव में आप क्या सोचते था और अधिक अपने प्रस्तावित API के बारे में उपयुक्त? जिस तरह से आपको सभी संसाधनों को मैन्युअल रूप से प्रबंधित करना पड़ा, वस्तुतः लीक और डबल डिलीट की गारंटी, उदाहरण के लिए? या जिस तरह से आपके कई प्रकार के एक या दो अक्षर के नाम थे, जिससे उनका उद्देश्य असंभव हो गया?
unique_ptr
किया होता तो उस तरह कोड लिखना संभव नहीं होता।