Следующий кодвызова в шаблон базового конструктора неоднозначна
template<class T>
struct Bar
{
Bar(T& myT){}
Bar(const Bar&) = delete;
};
template<class T>
struct Foo: public T,
public Bar<T>
{
Foo(): Bar<T>(*this){}
};
class Baz{};
int main()
{
Foo<Baz> myFoo;
return 0;
}
дает мне эту ошибку:
error: call to constructor of 'Bar<Baz>' is ambiguous
Как я могу это исправить?
(Кажется простым, я уверен, что где-то есть дубликат, но я не мог найти его ... все вопросы, которые я нашел с «неоднозначным конструктором», имели отношение к перегруженным конструкторам, и это кажется мне другим .)
Ahh gotcha, спасибо! Наверное, я всегда уклонялся от явного кастинга, поэтому я даже не считал его XP, но это то, что мне нужно сделать! –