2013-09-21 9 views
8

मैंने सी ++ के लिए थोड़ी सी भाषा विस्तार के बारे में सोचा और एक प्रस्ताव के लिए ड्राफ्ट लिखा (http://pdfcast.org/pdf/user-defined-type-qualifiers-1)।उपयोगकर्ता परिभाषित क्वालीफायर

विचार यह है कि कोई उपयोगकर्ता क्वालीफायर को परिभाषित कर सकता है जैसे कि स्थिरता कोड (यानी विधियों) केवल वही योग्यता प्राप्त करता है।

सवाल यह है कि अगर यह किसी भी भाषा नियम के साथ टकराएगा या अगर मुझे कुछ याद आया।

+5

मुझे यकीन नहीं है कि आपको इस तरह के प्रश्न के लिए SO पर अधिक ध्यान मिलेगा। SO प्रश्न बहुत विशिष्ट होते हैं और आम तौर पर स्रोत कोड शामिल करते हैं (देखें [मैं यहां कौन से विषय पूछ सकता हूं?] (Http://stackoverflow.com/help/on-topic))। [Iso-cpp] (http://isocpp.org/forums) वेबसाइट है जहां "भविष्य प्रस्ताव" फ़ोरम में वर्णन है: "क्या आप एक नई भाषा या पुस्तकालय सुविधा का प्रस्ताव देना चाहते हैं और पहले अपने विचार पर प्रारंभिक प्रतिक्रिया प्राप्त करना चाहते हैं एक विस्तृत प्रस्ताव लिखना? "। – dyp

+1

* एक साइड टिप्पणी: * यदि आपका वर्तमान नोटेशन 'fixed_point <24,12>' बनाम 'u_fixed_point <24,12>' है, तो आप इसे सरल बनाने के लिए टैग या "नीतियों" का उपयोग कर सकते हैं: 'fixed_point <हस्ताक्षरित, 24,12>' (वास्तव में, मैं मुझे लगता है कि मैंने इसे पहले कहीं भी देखा है)। – dyp

+0

मैं @DyP से सहमत हूं, यह इसे लाने के लिए गलत जगह हो सकती है। विषय के लिए उपरोक्त, इसे यहां नहीं पूछें ... –

उत्तर

1

स्टैक ओवरव्लो के लिए वास्तव में विषय पर नहीं। लेकिन हाँ, "उपयोगकर्ता परिभाषित प्रकार क्वालीफायर" एक साफ विचार है, और एक लंबे इतिहास के साथ। इन्हें आमतौर पर टेंट विश्लेषण के लिए उपयोग किया जाता है (यानी, यह सुनिश्चित करना कि उपयोगकर्ता द्वारा नियंत्रित और संभावित रूप से दुर्भावनापूर्ण बिट्स का उपयोग नहीं किया जाता है जैसे कि वे विश्वसनीय बिट्स थे; सुनिश्चित करें कि आपका सभी एचटीएमएल इसे प्रदर्शित करने से पहले ठीक से बच निकला है; इस तरह की चीज)।

http://www.cs.umd.edu/~jfoster/papers/toplas-quals.pdf अपने मुख्य प्रेरणा के रूप में कलंक विश्लेषण किया है, लेकिन यह भी सुरक्षित जानकारी प्रवाह का उल्लेख है (जैसे कि, इस तरह के क्रिप्टोग्राफ़िक कुंजी बिट्स कोड की गैर-सुरक्षित भागों में बाहर लीक नहीं है के रूप में यकीन है कि संवेदनशील जानकारी बनाने)।

कहा जाता है कि, अधिकांश अनुप्रयोगों के लिए, "उपयोगकर्ता द्वारा परिभाषित डेटा प्रकार" पर्याप्त हैं। आप लगभग हमेशा यांत्रिक रूप से बदल सकते हैं, उदा। std::string [[tainted]] xTainted<std::string> x में।

Tainted<std::string> x; 
cin >> x; // unfortunately, this implicit conversion of Tainted<T>& to T& 
      // is exactly what we want to avoid 
संबंधित मुद्दे