निम्नलिखित कोड में, वैरिएडिक कन्स्ट्रक्टर को दो बार बुलाया जाता है। जब उपयुक्त हो तो वैरिएडिक कन्स्ट्रक्टर के एकल तर्क संस्करण के बजाय मैं कॉपी कन्स्ट्रक्टर को कैसे कॉल कर सकता हूं?मैं एक वैरिएड कन्स्ट्रक्टर पर कॉल कॉपी कन्स्ट्रक्टर कैसे प्राप्त करूं?
#include <iostream>
struct Foo
{
Foo(const Foo &)
{
std::cout << "copy constructor\n";
}
template<typename... Args>
Foo(Args&&... args)
{
std::cout << "variadic constructor\n";
}
std::string message;
};
int main()
{
Foo f1;
Foo f2(f1); // this calls the variadic constructor, but I want the copy constructor.
}
इसके लिए थोड़ा और अधिक है, अर्थात् संदर्भ ढहना (जिसे कहा जाता था?), यानी 'T &&&' => 'टी &' क्योंकि अन्यथा एक lvalue ('f1')' T && 'से बाध्य नहीं हो सका। –