S'il vous plaît jeter un oeil à ce code et l'exécuter:
Je reçois une erreur très étrange:
Erreur 1 Erreur C2663: « Allocataire :: allocate_help »: 2 ont pas surcharges conversion légale pour 'this' pointeurjuridique pointeur « this »
template<class FailureSignal>
class Allocator
{
private:
template<class Exception,class Argument>
void allocate_help(const Argument& arg,Int2Type<true>)
{
}
template<class Exception,class Argument>
std::nullptr_t allocate_help(const Argument& arg,Int2Type<false>)
{
return nullptr;
}
public:
template<class T>
void Allocate(signed long int nObjects,T** ptr = 0)const
{
allocate_help<std::bad_alloc>(1,Int2Type<true>());
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Allocator<int> all;
all.Allocate<int>(1);
return 0;
}
Je ne comprends absolument pas cette err msg. J'espère que quelqu'un peut m'aider avec ça. Je vous remercie.
Vous pouvez compiler comme vous l'avez demandé. 'Int2Type' n'est pas déclaré/défini –