如果它是参考符号,如何使 & 符号变为蓝色?
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&& 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 代码不解析 C++ 来为文本着色,因此类别错误。你无法解决这个问题;这需要由 Microsoft 修复。
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 代码不解析 C++ 来为文本着色,因此类别错误。你无法解决这个问题;这需要由 Microsoft 修复。