मैं इस सदस्य समारोह परीक्षण:SFINAE सदस्य समारोह अस्तित्व परीक्षण मुद्दा
template <typename T>
struct has_member {
template <typename U> static true_type f(decltype(declval<U>().member()) *);
template <typename> static false_type f(...);
static const bool value = decltype(f<T>(0))::value;
};
यह मामला समारोह एक अधिभार नहीं लेता है कि है कि में जब किसी के नाम के साथ एक सदस्य समारोह में मौजूद है सही का आकलन, तर्क। ऐसे कार्यों के लिए और एसटीएल कंटेनरों के मामले में, यह तत्वों के उपयोग कार्यों (सामने, पीछे इत्यादि) को छोड़कर ठीक से काम करता है, जहां यह हमेशा झूठे मूल्यांकन करता है।
वह क्यों है? मेरे पास g + g 4+ mingw है।
पिछली वापसी प्रकार की सहायता में बदल रहा है? 'ऑटो एफ (यू * पी) -> decltype (पी-> सदस्य(), true_type());' – Xeo