में टाइप-बाउंड फ़ंक्शन ओवरलोडिंग मेरे पास एक फोरट्रान व्युत्पन्न प्रकार टी है जिसमें विभिन्न रैंकों और प्रकारों के डेटा सरणी शामिल हैं। इन सरणियों एक जटिल डेटा संरचना के अंदर छिपे हुए हैं और मैं इस बात का एक गेटर समारोह करना चाहते हैं निम्नलिखित है:फोरट्रान 2003
a => T%get(data_id)
जहां "एक" दिए गए प्रकार की एक सरणी सूचक है, और data_id एक पूर्णांक है कि है डेटा संरचना के अंदर डेटा खोजने के लिए प्रयोग किया जाता है। मैं एक सामान्य नाम के तहत कई "get_thistype()" कार्यों को अधिभारित करके करता हूं।
TYPE T
PROCEDURE :: get_real
PROCEDURE :: get_integer
GENERIC :: get => get_real,get_integer
END TYPE
यह काम करता है अगर get_thistype() दिनचर्या सबरूटीन्स रहे हैं, लेकिन नहीं वे कार्यों के रूप में लिखा जाता है। इसका मतलब है कि मेरा कोड इस तरह दिखता है:
CALL T%get(a,data_id)
जो मुझे बहुत कम पठनीय लगता है। क्या उन कार्यों को अधिभारित करने का कोई तरीका है जिनके पास समान तर्क सूची है लेकिन अलग-अलग रिटर्न प्रकार हैं? या मुझे इसके लिए subroutines का उपयोग करना है?
मुझे लगता है कि संकलक के लिए केवल सही प्रकार के आधार पर सही फ़ंक्शन को समझना मुश्किल होगा, इसलिए यह संभवतः असंभव है। मैं सिर्फ subroutines का उपयोग करेंगे। – bdforbes