我注意到在函数前面定义一个空的PURE
会混淆VS2015中的Intellisense。与此同时,字母(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))
。所以现在看来我必须改变现有的GCC代码库才能够在Visual Studio中使用F12,除非我做错了什么。
这是一些预定义的宏,它在某种程度上与Intellisense有关吗?
哦,这是你。 :)也许我可以换个时间。谢谢! – Lou