मैं जानता हूँ कि जेनरिक एक भूमिका सी ++ टेम्पलेट्स के लिए इसी तरह पूरा करने के लिए सी # में हैं, लेकिन मैं वास्तव में संकलन समय पर कुछ कोड उत्पन्न करने के लिए कोई तरीका होना चाहिए - इस विशेष स्थिति में यह सी ++ टेम्पलेट के साथ समस्या को हल करने के लिए बहुत आसान होगा ।टेम्पलेट्स
किसी को भी किसी भी विकल्प के पता है? शायद एक वीएस प्लग-इन जो कोड को पूर्ववत करता है या ऐसा कुछ? इसे बहुत परिष्कृत होने की आवश्यकता नहीं है, मुझे बस संकलन समय पर कुछ तरीकों को उत्पन्न करने की आवश्यकता है।
यहां सी ++ में एक बहुत ही सरल उदाहरण है (ध्यान दें कि इस विधि को केवल "उन्नत" की बजाय विभिन्न स्थितियों के साथ एक तंग लूप के अंदर बुलाया जाएगा और उन स्थितियों में प्रति फ्रेम केवल एक बार बदल जाएगा - अगर यह बहुत धीमा और लिखना होगा हाथ से सभी वैकल्पिक तरीकों को बनाए रखना असंभव होगा)। यह भी ध्यान रखें कि प्रदर्शन बहुत महत्वपूर्ण है और यही कारण है कि मुझे संकलन समय पर उत्पन्न होने की आवश्यकता है।
template <bool Advanced>
int TraceRay(Ray r)
{
do
{
if (WalkAndTestCollision(r))
{
if (Advanced)
return AdvancedShade(collision);
else
return SimpleShade(collision);
}
}
while (InsideScene(r));
}
जिज्ञासा से, क्या आप सी ++ टेम्पलेट का एक कोड उदाहरण प्रदान कर सकते हैं जिसका आप उपयोग करेंगे? एक वैकल्पिक दृष्टिकोण हो सकता है जो आप सी # में जो चाहते हैं उसे पूरा कर सकता है। –
एक साधारण उदाहरण जोड़ा गया। –
ध्यान रखें, सी # एक जेआईटी कंपाइलर का उपयोग करता है। तो "रन टाइम" पर मूल्यांकन किए जाने वाले बयान भी जेआईटी द्वारा संकलित कोड में अनुकूलित हो सकते हैं, जब तक कि यह निर्धारित किया जा सके कि केवल एक ही रास्ता लिया जाएगा। इसके अलावा, यदि आप इस स्तर के प्रदर्शन की परवाह करते हैं, तो आपको पहले स्थान पर प्रबंधित कोड का उपयोग नहीं करना चाहिए। –