मैंने हाल ही में सी ++ में संकलन-समय के दावे की आवश्यकता पर ध्यान दिया कि यह जांचने के लिए कि दो प्रकार के आकार बराबर थे।सी ++ में संकलन-समय सम्मिलन?
#define X_ASSERT(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
जो मैं बहुत की तरह इस्तेमाल किया:
मैं वेब पर निम्न मैक्रो (कहा लिनक्स कर्नेल से आए हैं) में पाया गया
X_ASSERT(sizeof(Botan::byte) != sizeof(char));
यह मैं उत्सुक हो जाता है - यह हालांकि काम करता है, क्या ऐसा करने का एक क्लीनर तरीका है? (जाहिर है कि एक से अधिक तरीके हैं, जैसा कि यह है) क्या कुछ तरीकों के फायदे या नुकसान हैं?
सभी जवाब हर किसी के लिए धन्यवाद, बहुत ही दिलचस्प। मुझे यह देखने में प्रसन्नता हो रही है कि सी ++ 0x को 'static_assert' मिल रहा है, मुझे पहले इसके बारे में पढ़ने की याद नहीं है। ;) –