पर विचार करें:सी ++ 11 ऑपरेटर "" डबल पैरामीटर के साथ
:struct str {};
str operator"" _X(long double d) {
return str();
}
इस ग्राम के साथ ++ 4.7.2 दीवार एसटीडी = C++ 11
लेकिन अब अगर मैं एक डबल देना ठीक संकलित
str operator"" _X(double d) {
return str();
}
मैं निम्न त्रुटि संदेश मिलता है: main.cpp | 3 | त्रुटि: 'str ऑपरेटर "" _X (डबल)' अमान्य तर्क सूची है
समस्या क्या है? क्या यह कुछ करने के लिए है "अंतर्निहित शाब्दिक प्रत्यय के अर्थ को फिर से परिभाषित करना संभव नहीं है" (स्ट्राउस्ट्रप एफएक्यू)? क्या आप एक कामकाज के बारे में सोच सकते हैं?
ठीक धन्यवाद लिख सकते हैं:
क्या उपयोगी हो सकता है इस तरह तैयार है। पर क्यों ? मेरा मतलब है, सिंटैक्स में कुछ ऐसा था जो डबल में असमर्थ था? –
@ बेरेन्गरबर्थोल: आप 'डबल' का उपयोग क्यों करेंगे जब 'लंबी डबल' में अधिक या अधिक रेंज और सटीकता हो? शायद गति या स्मृति उपयोग के कारणों के लिए, सही? खैर, वे संकलन समय पर किए गए संचालन के लिए विचार नहीं हैं। यदि आप डबल परिशुद्धता के साथ संचालन करना चाहते हैं, तो आप हमेशा फ़ंक्शन के अंदर एक कास्ट का उपयोग कर सकते हैं। –
@ बेन वोगेट ठीक है, मेरे लिए ठीक है। मुझे लगता है कि यह थोड़ा सा झुकाव है, लेकिन वास्तव में कोई बड़ा पीबी नहीं है। धन्यवाद –