是否有补丁(官方或非官方)可以让 IntelliSense 停止报告每次使用decltype
作为语法错误?它编译得很好,所以我知道decltype
是支持的,但是到处都是红色波浪线会让人分心,而且很难找到actual代码中的错误。每次编译都会给我一个包含数百个非错误的列表 - 基本上每次使用至少有 3 个decltype
在代码库中,例如:
std::for_each(std::begin(list), std::end(list), [](const decltype(list)::value_type& item)
{
<do stuff with item>
});
将产生以下(非)错误:
IntelliSense: global-scope qualifier (leading '::') is not allowed
IntelliSense: expected a ')'
IntelliSense: identifier "item" is undefined
目前无法升级到 VS2015。 (我怀疑我能否说服公司花钱升级每台计算机,而只升级其中一些计算机会导致向后兼容性问题。)
就我个人而言,我不想使用decltype
直到我们得到一个完全支持它的 IDE(我不知道你实际上在哪里)need),但我认为我也无法让所有人相信这一点。我只是想让所有这些假错误消失,这样我就可以找到真正的错误,而不必仔细研究数千个误报。
给定一个辅助模板别名
template <typename T> using id = T;
您可以通过编写来避免智能感知错误,同时仍然保持代码完全有效id<decltype(list)>::value_type
否则你会写的地方decltype(list)::value_type
.
取决于频率decltype
紧接着是::
,您可能想要创建一个简单的宏:
#define DECLTYPE(x) id<decltype(x)>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)