मुझे मूल रूप से एक ही फ़ंक्शन को लागू करना है लेकिन विभिन्न आकारों के लिए। विशेष रूप से यह कुछ की तरह है ...सी ++ एक विधि का उपयोग करके और चेतावनी के बिना विभिन्न प्रकार के असाइनमेंट को लागू करने का सुरुचिपूर्ण तरीका?
type& operator=(unsigned int);
type& operator=(unsigned long int);
type& operator=(unsigned long long int);
type& operator=(int);
type& operator=(long int);
type& operator=(long long int);
type& operator=(short int);
//so on and so forth...
वे, मुख्य विचार होगा "यदि प्रकार व्यापक है बिल्कुल वही बात क्या करना है ... (सिवाय मैं खाता अलग अलग आकार में रखना चाहिए) कार्य के लिए कोड का उपयोग करें ... अन्यथा एक कास्टिंग करें और कोड निष्पादित करें "। क्या केवल एक विधि का उपयोग कर ऐसे सभी दोहराव कोड से बचना संभव है? (मैं नहीं चाहता कि संकलक मुझे कुछ चेतावनी फेंक दें जब मैं संकलित करता हूं ...)।
धन्यवाद
असाइनमेंट विभिन्न कारणों के लिए समस्याग्रस्त है, लेकिन अगर आप यह करना चाहिए: है तुम सिर्फ 'intmax_t के लिए भार के लागू करने की कोशिश की 'और' uintmax_t' ('' से)? –
pmdj
हां मैं cstdint का उपयोग कर रहा हूं, मैं बस एक ही कोड लिखने से बचाना चाहता हूं ... सुरुचिपूर्ण और कुशल तरीके से। – user8469759