मुझे अक्सर ऐसी स्थिति होती है जहां मुझे बिट शिफ्ट और मास्किंग ऑपरेशंस के उपयोग के लिए संकलन समय पर उत्पन्न कई स्थिरांक की आवश्यकता होती है।कंपाइलर प्रीप्रोसेसिंग के दौरान गणितीय परिचालन
उदा।
#define blockbits 8
#define blocksize 256 // could be generated from 2^blockbits
#define blocksize 0xFF // could be generated from blocksize - 1
मैं चाहते हैं इन सभी, blockbits
से उत्पन्न किया जा करने के लिए लेकिन कोई शक्ति आपरेशन कि पूर्वप्रक्रमक है कि मैं के बारे में पता कर रहा हूँ में इस्तेमाल किया जा सकता है।
क्या किसी को इस तरह की चीज संकलन समय पर उत्पन्न करने का एक आसान तरीका पता है?
"हालांकि वहां कोई पावर ऑपरेशन नहीं है जिसका प्रयोग प्रीप्रोसेसर में किया जा सकता है जिसे मैं जानता हूं।" - वास्तव में? बिट शिफ्ट के बारे में क्या? –
बीटीडब्ल्यू जो सी ++ हम बात कर रहे हैं, स्थिरांक के बजाय '# परिभाषित 'के लिए कोई अच्छा कारण है? – Kos
क्या यह 'constexpr' के लिए नौकरी नहीं है? – DavidO