2017-07-19 1 views
1

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:

Specifying PURE confuses VS

contre l'info-bulle IntelliSense correcte ici:

Other macros work fine

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?

Répondre

1

copiais votre code partagé et je l'ai testé dans le VS 2015 et 2017, je trouve le résultat dans VS 2017 peut apparaitre le commentaire pour « PURE » qui répondent à vos besoins, s'il vous plaît vérifier: enter image description here

Vous peut essayer de télécharger et d'installer le VS 2017 à partir de Visual Studio Downloads ou signaler ce problème dans VS 2015 à l'équipe produit VS au this page pour obtenir un support plus professionnel.

+0

Oh, c'est encore toi. :) Il est temps pour moi de changer alors peut-être. Merci! – Lou