क्या सी/सी ++ मैक्रो "BUILD(a, i)
" को परिभाषित करना संभव है जो "x[0], x[1], x[2], ..., x[i]
" तक फैलता है?मैक्रो रिकर्सिव विस्तार एक अनुक्रम
#define BUILD(x, 0) x[0]
#define BUILD(x, 1) x[0], x[1]
#define BUILD(x, 2) x[0], x[1], x[2]
...
ऐसा लगता है कि BOOST_PP_ENUM_PARAMS नौकरी कर सकता है। मुझे लगता है कि मैं सिर्फ # शामिल कर सकता हूं, लेकिन मुझे यह जानने में दिलचस्पी है कि यह कैसे और क्यों काम करता है, कोई भी समझा सकता है?
मैं एक समारोह f(int, ...)
जो एन पूर्णांक तर्क x[i]
, 0 < लेता कॉल करना चाहते हैं = मैं < एन कहाँ एन ceil(sizeof(A)/sizeof(B))
होने के लिए जाना जाता है। तो दुर्भाग्यवश, मैं varargs या टेम्पलेट्स का उपयोग नहीं कर सकता।
संबंधित: http://stackoverflow.com/questions/824639/variadic-recursive-preprocessor-macros-is-it-possible/893684 –
क्या समस्या क्या तुम सच में हल करने की कोशिश कर रहे हैं? अर्थात। इस मैक्रो का नतीजा क्या होगा? क्या टेम्पलेट समाधान (जहां रिकर्सन संभव है) की अनुमति देने के लिए उपयोग को थोड़ा सा बदला जा सकता है? –
मेरा अंतिम संपादन देखें। –