Cela s’est effectivement produit deux fois maintenant. J’écris une application multiplate-forme et certains de mes noms de fonctions sont en conflit avec l’API Windows. Ce que j’ai fait (par exemple avec LoadObject) était …
#undef GetObject
Est-ce une approche correcte ou devrais-je renommer mes fonctions?
Si vous avez l’intention d’utiliser votre code à côté de l’API Windows, je vous recommande de renommer les fonctions. Oui, c’est compliqué, mais (à mon avis) c’est mieux que de ne pas définir certaines parties de l’API Windows, même si vous n’utilisez pas ces parties (quelqu’un d’autre utilisant votre code devra peut-être utiliser ces parties).
Vous pouvez placer vos fonctions dans un espace de noms ou une classe (le cas échéant). Si vous appelez dans une classe, souvenez-vous de this
mot this
clé. this->aliasedFunction();
Si vous travaillez avec C ++, vous devriez placer vos fonctions dans des classes et des espaces de noms pour éviter ce genre de problèmes (méthodes aka).