获取 MSVC 智能感知以显示基本类型

Get MSVC intellisense to show base type

很多时候,我都是这样做的:

template <int> struct CTypeMap    { typedef int  Type; };
template <>    struct CTypeMap<1> { typedef bool Type; };
template <>    struct CTypeMap<2> { typedef char Type; };

CTypeMap<0>::Type q;

当我将鼠标悬停在 q 上时,如果智能感知显示我键入 "int"、"bool" 或 "char" 就好了。相反,我得到 "CTypeMap<0>::Type"

有什么方法可以欺骗智能感知来做这样的事情吗?

据我所知,在 Visual Studio 2013 年无法让 IntelliSense 显示此信息。

但是,在 Visual Studio 2015 年,IntelliSense 将报告 q 是类型 int 而不是 CTypeMap<0>::Type,这正是您想要的。这是对 Visual Studio 2015 的 IntelliSense 帮助工具提示进行的众多小调整之一。(我最喜欢的调整涉及 typedef 的折叠,例如 std::vector<std::string>。)