मैं कोई वास्तविक स्थिति है जिसमें निम्न उदाहरण में संक्षेप किया जा सकता है:टेम्पलेट वर्गों के अस्पष्ट एकाधिक वंशानुक्रम
template< typename ListenerType >
struct Notifier
{
void add_listener(ListenerType&){}
};
struct TimeListener{ };
struct SpaceListener{ };
struct A : public Notifier<TimeListener>
, public Notifier<SpaceListener>
{
};
struct B : TimeListener{ };
int main()
{
A a;
B b;
a.add_listener(b); // why is ambiguous?
return 0;
}
क्यों संकलक कि B
एक TimeListener
है को स्पष्ट नहीं है, और इसलिए ही संभव है अधिभार संकल्प Notifier<TimeListener>::add_listener(TimeListener&)
है?
आप 'का उपयोग कर सूचक के साथ अपने मुद्दों को हल कर सकते हैं :: add_listener; '(और दूसरा एक) 'स्ट्रक्चर ए' में। [डेमो] (http://coliru.stacked-crooked.com/a/6e43848691a4cfcb) –
Jarod42