2012-09-25 23 views
6

संकल्पनात्मक रूप से मुझे लगता है कि इकाई लागू करने वाले प्रकार (मीटर, सेकेंड, किलोग्राम) का भारी लाभ (तर्क पारित करने में अतिरिक्त जांच, वर्रों में यूनिट नामों से छुटकारा पाने आदि) और अभी तक मेरे पास है जो कोड करता है उतना कोड नहीं चलाता है। और जो कोड मैंने देखा है, उसने कस्टम प्रकारों का उपयोग किया है।क्या यूनिट लागू करने वाले प्रकारों का उपयोग न करने का कोई कारण है?

मुझे लगता है कि को बढ़ावा देने के लिए एक इकाइयों पुस्तकालय (बढ़ावा :: इकाइयों बस पर्याप्त) और अभी बाकी है, मैं व्यापक रूप से इस्तेमाल किया जा रहा (एक बुनियादी गूगल खोज में) इसके बारे में काफी सबूत नहीं दिख रहा।

क्या इसके लिए कोई अच्छा कारण है?

साथ में यह प्रतीत होता है कि ऐसा कुछ कारण होना चाहिए क्योंकि इस अभ्यास को व्यापक रूप से अपनाया गया है जैसा कि मैं अपेक्षा करता हूं। शायद कुछ कारणों से वे अधिक परेशानी हैं?

और इसलिए मैं पूछना:

एक कारण प्रकार लागू करने इकाई का उपयोग करना नहीं है? और विशेष रूप से बूस्ट :: इकाइयों का उपयोग न करने का कारण है?

उत्तर

6

मुझे लगता है कि यह तकनीक अधिक प्रचलित क्यों नहीं है इसका मुख्य कारण यह है कि यह बेहद मुश्किल और बोझिल है और पढ़ने के लिए बोझिल है। बजाय पारंपरिक

auto acc = 10_m/1_s/1_s; 

:

उम्मीद है कि इस अंत के साथ सी ++ 11 और अधिक स्वीकार्य प्रोग्रामिंग शैली है, जो भाषा है जो आप लिखते हैं यह बताने के लिए कहते हैं उपयोगकर्ता परिभाषित शाब्दिक बन जाएगा

myframework::units::si<acceleration>::type acc = myframework::unit_cast<units::meters>(10.0) /myframework::unit_cast<units::seconds>(1) /myframework::unit_cast<units::seconds>(1); 
+0

ओह, बहुत अच्छा है पर इसे पा सकते हैं पर एक ट्यूटोरियल प्रस्तुत किया। मुझे सी ++ 11 में उस सुविधा के बारे में पता नहीं था। – Catskul

+0

हालांकि उनमें से कुछ को कुछ टाइपिफ के साथ हल नहीं किया जा सका? – Catskul

+0

@Catskul: आप वास्तव में कुछ निश्चित शब्दावली के आसपास नहीं मिल सकते हैं। Boost.nnits पर एक नज़र डालें और देखें कि "पेशेवर रूप से डिज़ाइन किए गए" समाधान किराए कितनी अच्छी तरह से हैं। मैं कहूंगा कि अधिकतर प्रोग्रामर की तुलना में अभी भी बहुत अधिक शोर है। –

3

मैंने सही पुस्तकालय लिखने के लिए इस पुस्तकालय का उपयोग बहुत लाभ के लिए किया है। दुर्भाग्य से यह उपयोग करने के लिए लगभग 10 गुना कठिन होना चाहिए। यह अभी भी इसके लायक है हालांकि आयामों और इकाइयों का ट्रैक रखना एक दुःस्वप्न है।

बूस्ट इकाइयां लाइब्रेरी बहुत चालाक, शक्तिशाली और पूर्ण है। समस्या यह है कि दस्तावेज सिर्फ पढ़ने योग्य नहीं है। भ्रमित नामों के साथ बहुत सी समस्याएं हैं, कोई प्रकार की आवश्यकता नहीं है। लेखकों में बहुत सारे उदाहरण शामिल थे जो सहायक होते हैं - लेकिन एक बेहतर निर्मित दस्तावेज़ के लिए विकल्प नहीं।

FYI करें - मैं इस बहुत विषय CPPcon 2015 में आप https://www.youtube.com/watch?v=qphj8ZuZlPA

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