関数の前に空のPURE
を指定するとIntellisenseがVS2015に混乱することがわかりました。手紙(pure
、Pure
、PurE
)の同じ時間、および他の非大文字の組み合わせで動作します:なぜ `PURE`は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);
}
それはでインテリセンスがPURE
でマークされた機能にコメントが表示されないことが判明し、いくつかのケース(正確には分からないが、機能が別々のファイルにある場合)は、「定義(F12)に移動」機能はまったく機能しません。 PURE
からPure
に名前を変更すると動作します。
注ここcommentlessツールチップ:
ここで正しいインテリセンスツールチップ対:ところで
、コードはGCCの間で共有されているので、私はこれをやっている理由MSVCなので、例えばPURE
はGCCで__attribute__((pure))
です。だから私は何か間違っていない限り、Visual StudioでF12を使用できるように既存のGCCコードベースを変更する必要があるようです。
これは何らかの形で定義されているIntellisenseのマクロですか?
ああ、もう一度です。 :)私はおそらくそれを切り替える時間。ありがとう! – Lou