क्या संकलक को इंगित करने का कोई तरीका है कि आप जानते हैं कि किसी विशेष चर के मान को कोड में किसी निश्चित बिंदु पर किसी विशेष सीमा के भीतर होना चाहिए, अनुकूलित करने के साथ संकलक की सहायता के लिए? मैं एक पुस्तकालय लिख रहा हूं जो संकलन समय पर कुछ चरों की सीमा को जानना संभव बनाता है, और यह निफ्टी होगा अगर यह किसी भी तरह से इस जानकारी को संकलक को संवाद कर सकता है ताकि संकलक इसे अनुकूलन के लिए उपयोग कर सके। मैं किसी भी कंपाइलर्स के लिए समर्थन जोड़ना चाहता हूं, जहां यह काम करेगा, भले ही इसे सभी के लिए काम करने के लिए नहीं बनाया जा सके (ऐसा लगता है कि कुछ कंपाइलर्स एक्सटेंशन के रूप में हो सकते हैं, लेकिन मेरे पास नहीं है किसी भी मिला)। मुझे पता है कि मैं इस तरह कुछ लिख सकता हूं:सी ++ कंपाइलर को रेंज जानकारी कैसे संवाद करें?
if(x < COMPILE_TIME_MIN or x > COMPILE_TIME_MAX)
return;
// compiler will assume for code below that x is in range COMPILE_TIME_MIN..COMPILE_TIME_MAX
लेकिन यह रनटाइम चेक है। शायद के बिना इस तरह की एक चेक के बारे में धारणा बनाने के लिए कंपाइलर प्राप्त करने के लिए कुछ चाल है?
क्या आपके पास कोई विचार है कि यह किस तरह के अनुकूलन के साथ मदद करेगा? –
यदि आप टेम्पलेट्स का उपयोग करते हैं, तो आप वास्तव में संकलन समय जांच सकते हैं यदि आपकी सभी जानकारी संकलन समय पर जानी जाती है। –
आप "कंपाइलर" वाक्यांश का उपयोग कर रहे हैं, लेकिन आप हमें कभी नहीं बताते हैं। संभवतः आपका मतलब g ++ या Visual C++ का कुछ संस्करण है, लेकिन यह स्पष्ट नहीं है। सामान्य रूप से अनुकूलन मानक द्वारा संबोधित नहीं किया जाता है, इसलिए आप जो भी संभवतः यहां कर सकते हैं वह कार्यान्वयन-विशिष्ट है। –