a fourni le code ci-dessous:C++/templates/GCC 4.0 bug?
template<class _ResClass, class _ResLoader=DefaultLoader>
class Resource
: public BaseResource
{
private:
_ResClass data_;
public:
explicit Resource(const std::string& path)
: data_(_ResLoader::load<_ResClass>(path))
{ };
};
Pourquoi serait-il l'échec mais celui-ci fonctionnera ?:
template<class _ResClass, class _ResLoader=DefaultLoader>
class Resource
: public BaseResource
{
private:
_ResClass data_;
public:
explicit Resource(const std::string& path)
: data_(**DefaultLoader**::load<_ResClass>(path))
{ };
};
Pas une réponse, mais des noms comme _ResLoader qui commence par un trait de soulignement et une lettre majuscule sont réservés en C++ - vous n'êtes pas autorisé à créer de tels noms dans votre propre code. –
Et quel était le message d'erreur? –
Qu'est-ce que 'DefaultLoader :: load'? Est-ce une fonction membre modélisée? Un type interne de 'DefaultLoader'? –