को देखते हुए निम्नलिखित सरल struct
variadic टेम्पलेट निर्माता प्राथमिकता
template <typename T>
struct A
{
A(T a) {}
template <typename ... Ts>
A(T a, Ts ... more) {}
};
int main()
{
A<int> a(1);
}
गारंटी नहीं है कि A(T a)
variadic टेम्पलेट निर्माता के बजाय बुलाया जाएगा क्या है, और क्यों?
14.8.2.4 को देखने के लिए जो अधिक विशिष्ट है दो समारोह टेम्पलेट्स तुलना के बारे में है। लेकिन इस उदाहरण में उम्मीदवारों में से एक कार्य एक समारोह टेम्पलेट नहीं है। – aschepler
@aschepler आप कह रहे हैं कि कंपाइलर को अब तक यह प्राप्त करने की आवश्यकता नहीं है, क्योंकि एक गैर-टेम्पलेट फ़ंक्शन जो एक परिपूर्ण मिलान है, इसका मतलब है कि इसे टेम्पलेट रिज़ॉल्यूशन शुरू करने की भी आवश्यकता नहीं है। मैं सहमत हूँ। इसमें एक और खंड होगा जो इसे शामिल करता है। –