Je suis très occupé maintenant écrire le débogage du code, je ne peux pas COOKUP un exemple complet, mais décrit essentiellement mon problèmePourquoi GCC considère-t-il les constructeurs privés lors de la correspondance de fonctions?
class Base{};
class MyX:public Base
{
...
};
class Derived:Base
{
...
};
template<class X>
class MyClass:Derived
{
private:
MyClass(const MyClass&)
:x()
{}
public:
MyClass(const X& value)
:x(value)
{}
};
....
MyX x;
MyClass<MyX>(x);
Cela me donne une erreur comme ceci:
error: there are two possible constrcutors MyClass<X>(const MyClass<X>&) and MyClass<X>(const X&)
MyX ne tire de MyClass? –
Pas directement, mais comme ma mise à jour montre qu'ils partagent un ancêtre –