<पूर्व>
वर्ग रनअराउंड; कक्षा हॉप्फ़ एंडडाउन; कक्षा नींद; टेम्पलेट & lt; typename अधिनियम & gt; Int doThis (); टेम्पलेट के & lt; & gt; Int doThis & lt; RunAround & gt; () {/ * रन रन .. * / वापसी 3; } टेम्पलेट & lt; & gt; इंट करूए & lt; HopUpAndDown & gt; () {/ * हॉप हॉप हॉप .. * / वापसी 2; } टेम्पलेट & lt; & gt; Int doThis & lt; सो जाओ & gt; () {/ * zzz .. * / return -2; } Struct परिणाम {टेम्पलेट & lt; typename Act & gt; पूर्णांक में & amp; ऑपरेटर () () {स्थिर पूर्णांक परिणाम; वापसी परिणाम; }}; Int main () {परिणाम परिणाम; // परिणाम & lt; RunAround & gt; () = doThis & lt; RunAround & gt; (); Results.operator () & lt; RunAround & gt; () = doThis & lt; RunAround & gt; (); परिणाम। ऑपरेटर () & lt; sleep & gt; () = do this & lt; सो जाओ & gt; (); वापसी 0; };
अगर मैं टिप्पणी को निकालता हूं, तो कंपाइलर सोचता है कि मैं ऑपरेटर ()
को गैर विद्यमान टेम्पलेट वर्ग परिणाम
ऑपरेटर & lt; RunAround & gt; ()
वर्ग परिणाम
।
चाहते हैं, तो मैं सामान्य नाम के बजाय ऑपरेटर ओवरलोड का उपयोग करना जारी रखना चाहता हूं मैंने टिप्पणी के नीचे भयानक वाक्यविन्यास का उपयोग करने के लिए बर्बाद किया (जो काम करता है)?
सबसे सहज बात यह है कि आप के लिए टेम्पलेट आर्ग्यूमेंट कटौती कार्य देना चाहिए:
संरचना परिणाम {टेम्पलेट & lt; typename अधिनियम & gt; पूर्णांक में & amp; ऑपरेटर () (अधिनियम) {/ * ... * /}}; परिणाम (रनएंड ()) = / * ... * /;
Comments
Post a Comment