如何解决如果是参考符号,如何使 & 符号变蓝?
template<typename T>
void f(T const&& n1,T const& n2)
{
T&& x1 = static_cast<T&&>(n1);
T& x2 = static_cast<T&>(n2);
}
快照来自 Visual Studio Code
,带有 C/C++
扩展名。
问题
1.在 T&& n1
和 T& n2
中,&
标志为蓝色。
2.在 T&& x1
和 T& x2
中,&
标志为白色。
3.在 <T&&>
和 <T&>
中,&
标志为白色。
问题
1.如果 &
是参考符号,如何将其设为蓝色?
2.是否可以通过修改以下其中一项来实现?
-
editor.semanticTokenColorCustomizations
-
editor.tokenColorCustomizations
-
cpp.tmLanguage.json
解决方法
(基于 rioV8 的评论)。
在 C++ 中,&
根据上下文具有不同的含义。它可以是地址运算符,可以表示引用,也可以是二进制位与运算符。要区分所有这些,您需要解析旁边的标记。 &&
只是稍微简单一点,它不能是一元运算符。
在 T & x
中,您需要知道 T
是类型还是值。这需要在 T
上应用 C++ 名称查找规则。我们可以在您的示例中看到它是 typename T
。但是,Visual Studio Code 不会解析 C++ 来为文本着色,因此分类错误。你无法解决这个问题;这需要由 Microsoft 修复。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。