मेरा मतलब है कि निम्नलिखित है। मैं एक टेम्पलेट फ़ंक्शन चाहता हूं जो दो वेक्टर इटरेटर्स (या दो पॉइंटर्स को डबल की सरणी में लेता है) लेता है और एक डबल देता है जो किसी भी तरह से वेक्टर इटरेटर्स या सरणी पॉइंटर्स से संबंधित होता है जो मैं पास करता हूं। हालांकि, मैं इसे डबल या int, या किसी अंकगणितीय प्रकार के लिए काम करना चाहता हूं।एक सी ++ टेम्पलेट फ़ंक्शन में क्या मैं एक डिफ्रेंस किए गए तर्क प्रकार को वापस कर सकता हूं?
मुझे लगता है कि मैं कहता हूँ की अनुमति नहीं कर रहा हूँ:
template <class T>
T* func(T Begin, T End)
T new_variable = Begin + 5;
return (*new_variable);
}
क्योंकि संकलक नहीं समझोगे क्या टी * साधन। एक समाधान जिसे मैंने सोचा था, वह है जो मैं वापस करने की कोशिश कर रहा हूं और इसे तीसरा तर्क देता हूं:
template <class T>
void func(T Begin, T End, T* new_variable)
new_variable = Begin + 5;
return (*new_variable);
}
क्या यह काम करेगा? यहां तक कि अगर ऐसा करने का एक और तरीका है जो मैं करने की कोशिश कर रहा हूं? (क्षमा करें यदि मैं नहीं स्पष्ट पर्याप्त किया गया है।)
ध्यान दें कि कंपाइलर टेम्पलेट फ़ंक्शन के रिटर्न प्रकार में 'T *' को समझता है; समस्या यह है कि '* new_variable' का प्रकार' टी * 'नहीं है। – outis