क्या सी ++ कंपाइलर्स वर्चुअल फ़ंक्शंस के लिए आरवीओ लागू करने में सक्षम हैं?क्या वर्चुअल फ़ंक्शन आरवीओ (वापसी मूल्य अनुकूलन) के लिए उम्मीदवार हो सकता है?
इस मामले में:
class AbstractReader
{
//...
public:
virtual std::vector<float> getFloatVector() = 0;
//...
}
class XmlReader : public AbstractReader
{
//...
public:
virtual std::vector<float> getFloatVector()
{
std::vector<float> result;
//Do some parsing here...
return result;
}
//...
}
class BinaryReader : public AbstractReader
{
//...
public:
virtual std::vector<float> getFloatVector()
{
std::vector<float> result;
//Do some decoding here...
return result;
}
//...
}
RVO return result;
लाइनों के लिए लागू कर सकते हैं? मुझे नहीं लगता।
फिर, std::move(result)
उस मामले में बड़े कंटेनर लौटने के लिए जाने का तरीका है?
धन्यवाद
क्या आप कृपया अपने प्रश्न को स्पष्ट कर सकते हैं? क्या आप अक्सर आभासी कार्यों को वापस करते हैं? – juanchopanza
@juanchopanza: मुझे लगता है कि सवाल यह है कि आरवीओ वर्चुअल फ़ंक्शन _within_ काम करता है, यानी वर्चुअल फ़ंक्शन किसी भी चीज़ के लिए वर्चुअल फ़ंक्शन लौटने पर आरवीओ काम करता है या नहीं। (और मुझे कोई कारण नहीं दिख रहा है कि इसे सैद्धांतिक काम में क्यों नहीं होना चाहिए) – Damon
@ डैमन मैं वही सोचता हूं, लेकिन ओपी को यह स्पष्ट करने दें कि वे वास्तव में क्या पूछना चाहते हैं। – juanchopanza