J'ai remarqué que la spécification d'un PURE
vide en face d'une fonction rend Intellisense in VS2015 confus. En même temps, et toute autre combinaison non majuscules des lettres (pure
, Pure
, PurE
) fonctionne:Pourquoi `PURE` définit-il" confus "Visual Studio 2015 Intellisense?
#include <stdint.h>
#define SOME
#define PURE
#define Pure
#define STUFF
// upper case "PURE"
SOME PURE STUFF uint8_t Add(uint8_t a, uint8_t b)
{
return (uint8_t)(a + b);
}
// pascal case "Pure"
SOME Pure STUFF uint8_t Sub(uint8_t a, uint8_t b)
{
return (uint8_t)(a - b);
}
Il se avère que IntelliSense ne montre pas le commentaire pour une fonction marquée avec PURE
, et Dans certains cas (pas exactement sûr, mais lorsque la fonction est dans un fichier séparé), la fonction "Aller à la définition (F12)" ne fonctionne pas du tout. Si je renomme PURE
en Pure
, cela fonctionne.
Notez le infobulle messages contenant ici:
contre l'info-bulle IntelliSense correcte ici:
BTW, la raison pour laquelle je fais cela parce que le code est partagé entre GCC et MSVC, donc PURE
est __attribute__((pure))
dans GCC, par exemple. Alors maintenant, il me semble que je vais devoir changer la base de code existante de GCC pour pouvoir utiliser F12 dans Visual Studio, à moins que je ne fasse quelque chose de mal.
Est-ce une macro prédéfinie qui perturbe quelque peu Intellisense?
Oh, c'est encore toi. :) Il est temps pour moi de changer alors peut-être. Merci! – Lou