मैं टेम्पलेट के साथ एक छोटे से समस्या है:सी ++ खाका डिफ़ॉल्ट निर्माता
template <typename T>
T Func(){
std::string somestr = "";
// somestr = ...
if (somestr != ""){
return boost::lexical_cast<T>(somestr);
}
else{
T ret; // warning: "ret may be uninitialized in this function"
return ret;
}
}
इस समारोह एक परिणाम प्राप्त करने के लिए विफल रहता है, मैं एक वैध वस्तु वापस जाने के लिए चाहते हैं, लेकिन संभव के रूप में खाली। अगर मैं इसे ऊपर की तरह करता हूं, तो मुझे चेतावनी मिलती है "इस फ़ंक्शन में रेट को अनियमित किया जा सकता है"। Try-Catch चेतावनी को हटाने में मदद नहीं करता ..
क्या सी # में default
कीवर्ड की तरह इसका कोई तरीका है?
return default(T); // C#
धन्यवाद!
बहुत अच्छा जवाब जेम्स। – user373215