क्या फ़ंक्शन के तर्कों के प्रकार प्राप्त करने और टेम्पलेट पैरामीटर पैक के रूप में इन प्रकारों को पार करने का कोई मानक तरीका है? मुझे पता है कि यह सी ++ में संभव है क्योंकि it has been done before।सी ++ फ़ंक्शन पैरामीटर के प्रकार प्राप्त करें
मुझे उम्मीद थी कि सी ++ 14 या आगामी सी ++ 1Z के साथ, वहाँ arg_types<F>...
यहाँ लागू करने के लिए एक मुहावरेदार तरीका होगा:
template <typename ...Params>
void some_function(); // Params = const char* and const char*
FILE* fopen(const char* restrict filename, const char* restrict mode);
int main(){
some_function<arg_types<fopen>...>();
}
बस, स्पष्ट होना एक जवाब का दावा है कि वहाँ ऐसा करने का कोई मानक तरीका जवाब नहीं है। यदि कोई जवाब नहीं है, तो मैं यह पसंद करूंगा कि प्रश्न तब तक अनुत्तरित रहेगा जब तक समाधान सी ++ 500 में या ब्रह्मांड की गर्मी की मृत्यु तक नहीं जोड़ा जाता है, जो भी पहले होता है :)
संपादित करें: एक हटाए गए उत्तर ने नोट किया कि मैं पैरामीटर प्रकारों के नाम प्राप्त करने के लिए PRETTY_FUNCTION
का उपयोग कर सकते हैं। हालांकि, मैं वास्तविक प्रकार चाहता हूं। उन प्रकार के नाम नहीं।
आप एक अविस्तारित पैरामीटर पैक के बिना पैक विस्तार नहीं कर सकता है, ताकि वाक्य रचना सवाल से बाहर है। – Columbo
क्या आप प्रतिबिंब के कुछ रूपों के बारे में बात कर रहे हैं? आप नाम मैंगलिंग पर एक नज़र डाल सकते हैं: क्योंकि सी ++ बाइनरी पर डीबग जानकारी तक पहुंचने और फ़ंक्शन पता जानने के द्वारा तर्क में तर्क प्रकार को एन्कोड करता है, आप पैरामीटर प्रकार क्या हैं ... –
1. फ़ाइल के साथ सी ++ का उपयोग करना ?! ! 2. रन टाइम –