如果是参考符号,如何使 & 符号变蓝?

问题描述

enter image description here

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&& n1T& n2 中,& 标志为蓝色。

2.在 T&& x1T& 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 修复。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...