आप मानते हैं कि एकमात्र प्रकार जो ऑपरेटर को तर्क के रूप में पारित किया जा सकता है वे प्रकार हैं जिन्हें भाषा के भीतर परिभाषित किया जा सकता है।
मैं तर्क दूंगा कि संकलक द्वारा पहचाने जाने वाले किसी भी प्रकार को "पहचानकर्ता" जैसे आंतरिक प्रकारों सहित एक तर्क के रूप में पारित किया जा सकता है। ऑपरेटर के पास एएसटी प्रतिनिधित्व में दो तर्क होंगे, जो आपको सेमेन्टिक्स को परिभाषित करने के लिए पर्याप्त है।
एक अन्य तर्क यह है कि भाषा सिद्धांत आपके शब्दावली के लिए परिभाषाओं का एक सेट प्रदान कर सकता है, लेकिन यह केवल एकमात्र नहीं है।
उदाहरण के लिए, एक ऑपरेटर एक ऐसा व्यक्ति हो सकता है जो मशीन का काम करता हो। उस परिभाषा के प्रोग्रामिंग सिद्धांत के लिए कोई प्रासंगिकता नहीं है, लेकिन यह मुझे डोमेन ऑपरेटिंग के साथ कुछ करने के लिए व्यक्त डोमेन-विशिष्ट भाषा में कीवर्ड के लिए उपयोग नहीं करेगा।इसी तरह, शब्द "ऑपरेटर" की गणित में व्यापक परिभाषा है जो कि प्रोग्रामिंग सिद्धांत के लिए विशिष्ट है - और यह परिभाषा केवल प्रोग्रामिंग भाषा के साथ काम करके अवैध नहीं है।
इसे एक और तरीका रखने के लिए - यदि आपने इसे ऑपरेटर नहीं कहा है, तो क्या आप इसे कॉल करेंगे?
संपादित
स्पष्ट करने के लिए, मेरा पहला तर्क ऑपरेटर (कॉल) का उपयोग करने के लिए वाक्य रचना करने के लिए बात कर रहा है। इन ऑपरेटरों के पास सही तर्क हैं जो पहचानकर्ता हैं - सदस्य नाम - जो सी ++ भाषा डेटा प्रकार का उपयोग करके व्यक्त नहीं कर सकती है। सी ++ भाषा में सदस्य पॉइंटर्स हैं, लेकिन वे सदस्य के समान नहीं हैं - जैसे वैरिएबल उस चर के सूचक के समान नहीं है।
मुझे लगता है कि सवाल यही है। उन ऑपरेटरों के सही पैरामीटर में एक प्रकार है जिसे सामान्य रूप से भाषा में व्यक्त या छेड़छाड़ नहीं किया जा सकता है।
क्या होता है जब उस वाक्यविन्यास को ओवरलोडेड operator->
फ़ंक्शन पर मैप किया जाता है तो यह एक अलग बात है। फ़ंक्शन ऑपरेटर नहीं है - यह केवल ऑपरेटर को लागू करने का तरीका है।
* पढ़ाया *। । । । – Inverse