J'ai écrit une classe pour la gestion des tampons de mémoire GPU. J'ai une méthode pour construire un tampon initialisé avec un morceau de mémoire CPU (si pData est nul, alors le bloc alloué de la mémoire GPU n'est pas initialisé, reste avec des valeurs indéterminées) et une surcharge pour le construire initialisé avec la même valeur d'octet:problème de surcharge dans VS2008 C++/CLI
IBuffer* CreateBuffer(IDevice* pDevice, int byteWidth, const void* pData);
IBuffer* CreateBuffer(IDevice* pDevice, int byteWidth, byte fillValue);
les cas d'utilisation sont:
CreateBuffer(pDev, 512, pData); //OK
CreateBuffer(pDev, 512, nullptr); //OK
CreateBuffer(pDev, 512, 0xCD); //OK
CreateBuffer(pDev, 512, 0x01); //OK
CreateBuffer(pDev, 512, 0x00); //error: ambiguous call to overloaded function
Bien sûr, je peux forcer un plâtre ou changer le nom de la méthode pour résoudre le problème. Je me demandais simplement s'il y avait un problème plus sérieux quelque part ou si c'était juste une restriction/un bug du compilateur.
Merci!
Évitez d'utiliser void * dans un programme C++/CLI. IntPtr est sans ambiguïté. –
TFTT. Ça fonctionne maintenant. – Stringer