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

How to make the & sign blue if it is a reference sign?

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。是否可以通过修改以下其中一项?

(基于 rioV8 的评论)。

在 C++ 中,& 根据上下文有不同的含义。它可以是地址运算符,可以表示引用,也可以是二进制位与运算符。为了区分所有这些,您需要解析它旁边的标记。 && 只是稍微简单一点,它不能是一元运算符。

T & x中,你需要知道T是类型还是值。这需要在 T 上应用 C++ 名称查找规则。我们可以在您的示例中看到它是 typename T。但是,Visual Studio 代码不解析 C++ 来为文本着色,因此类别错误。你无法解决这个问题;这需要由 Microsoft 修复。