2017-07-19 6 views
1

関数の前に空のPUREを指定するとIntellisenseがVS2015に混乱することがわかりました。手紙(purePurePurE)の同じ時間、および他の非大文字の組み合わせで動作します:なぜ `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ツールチップ:

Specifying PURE confuses VS

ここで正しいインテリセンスツールチップ対:ところで

Other macros work fine

、コードはGCCの間で共有されているので、私はこれをやっている理由MSVCなので、例えばPUREはGCCで__attribute__((pure))です。だから私は何か間違っていない限り、Visual StudioでF12を使用できるように既存のGCCコードベースを変更する必要があるようです。

これは何らかの形で定義されているIntellisenseのマクロですか?

答えて

1

共有コードをコピーして、私はVS 2015および2017年にそれをテストし、私はVS 2017での結果はあなたの要件を満たした「PURE」のコメントをポップアップすることができた、これを確認してください。 enter image description here

ますVisual Studio DownloadsからVS 2017をダウンロードしてインストールするか、VS 2015のこの問題をVS Product Teamのthis pageに報告して、より専門的なサポートを求めることができます。

+0

ああ、もう一度です。 :)私はおそらくそれを切り替える時間。ありがとう! – Lou

関連する問題