Renommer la fonction vs undef: conflits avec l’API Windows

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).