यह सवाल एकाधिक वंशानुक्रम को following solution में के रूप में this answer में प्रस्तावित प्रेरित है छद्म अस्पष्टता है, जो बढ़ावा के लिए लैम्ब्डा आगंतुकों को लागू करने के एक अच्छा तरीका है अधिक भार :: संस्करण:घोषणा का उपयोग कर
मैं क्या करना चाहते हैं कुछ निम्न की तरह:
template <typename ReturnType, typename... Lambdas>
struct lambda_visitor : public boost::static_visitor<ReturnType>, public Lambdas... {
using Lambdas...::operator(); //<--- doesn't seem to work
lambda_visitor(Lambdas... lambdas) : boost::static_visitor<ReturnType>() , Lambdas(lambdas)... { }
};
मुझे यकीन नहीं है कि पैक की गई सूचियों के लिए क्लॉज का उपयोग करके जोड़ने का सही वाक्यविन्यास क्या होगा। using
संकलन शिकायत से रोकने के लिए महत्वपूर्ण है कि operator()
संदिग्ध हैं, जो पूरी तरह से नहीं हैं, क्योंकि उनके पास सभी अलग-अलग हस्ताक्षर हैं।
प्रस्ताव एक [P0195R2] (http://wg21.link/p0195r2) "का उपयोग कर-घोषणाओं में पैक विस्तार" है। – Orient
'उपयोग' घोषणा के संदर्भ में पैरामीटर पैक विस्तार C++ 17 मानक में है। – ThomasMcLeod