मैं एक टेम्पलेट पैरामीटर एक टेम्पलेट स्वीकार करना चाहता हूं जिसमें संख्यात्मक टेम्पलेट तर्क हो।टेम्पलेट टेम्पलेट पैरामीटर कैसे एक संख्यात्मक मान लेते हैं?
यह उदाहरण शायद ज्यादा सरल बनाया है, लेकिन मैं कुछ इस तरह करना चाहते हैं:
template <int X>
struct XX
{
static const int x = X;
};
template<typename TT, TT V, template<V> TX>
void fnx(TX<V> x)
{
static_assert(V == TX::x, "IMPOSSIBLE!");
}
void fny()
{
fnx(XX<1>())
}
मैं इस वाक्य विन्यास को समझ नहीं किया जाना चाहिए, के रूप में यह संभव होना चाहिए। मैं इसे कैसे पूरा करूं?
क्या 'TT' माना जाता है? 'fn'' में 'fnx' को कॉल करते समय संकलक अपने प्रकार को कैसे कम करेगा? क्या आप अपनी समस्या का अधिक संदर्भ दे सकते हैं, आप इस दृष्टिकोण के साथ हल करने की कोशिश कर रहे हैं? –
@ m.s। संभवतः 'int'। – Barry
संवैधानिक रूप से आपको 'टेम्पलेट क्लास TX' की आवश्यकता है। लेकिन यह पूरी समस्या नहीं है। –