के साथ एक संपूर्ण कक्षा को अग्रेषित करना मैं सोच रहा हूं। मैंने एक समस्या मारा और यहां एक छोटा सा उत्पाद है। अनिवार्य रूप से मैं सबकुछ आगे बढ़ाना चाहता हूं। समस्या यह है कि, पहले < < का उपयोग o<<1
(या o<<SomeUserStruct()
) के साथ एक त्रुटि का कारण बन जाएगा। अगर मैं दूसरा शामिल करता हूं तो मुझे अस्पष्ट होने के बारे में त्रुटियां मिलती हैं। क्या कोई तरीका है कि मैं इस कोड को लिख सकता हूं ताकि यह T&
का उपयोग करेगा जब यह अन्यथा हो सकता है का उपयोग करता है T
?एक ऑपरेटर
#include <iostream>
struct FowardIt{
template<typename T> FowardIt& operator<<(T&t) { std::cout<<t; return *this; }
//template<typename T> FowardIt& operator<<(T t) { std::cout<<t; return *this; }
};
struct SomeUserStruct{};
int main() {
FowardIt o;
o << "Hello";
int i=1;
o << i;
o << 1;
o << SomeUserStruct();
}
उत्कृष्ट उत्तर। हालांकि अगर मैं विधि बना देता हूं तो मुझे रिटर्न कॉन्स भी बनाना होगा। जो अनौपचारिक होगा (नियमित धाराओं के लिए)। –
@ एसिडज़ॉम्बी 24: हां। मैंने यह भी जोड़ा! – Nawaz
क्या आपको पता है कि इसके साथ समस्या क्या है? http://www.ideone.com/fWVG4 हेक्स काम करता है ताकि हम जान सकें कि फ़ंक्शंस आगे बढ़ रहे हैं। हालांकि अंतहीन नहीं है। –