当我编译 cpp 时,如何设法突出显示 ninja 生成的错误和警告?当我遇到错误时,我只看到白色文本,如果我可以突出显示错误和警告,将会提高可读性。
标准中曾经有一段话指出:
除非在命名空间范围内显式声明,否则类模板特化的命名空间范围友元函数的名称在普通查找期间不可见。这些名称可以在相关类下找到。
template <typename T> struct number {
number(int);
friend number gcd(number x, number y) { return 0; }
};
void g() {
number<double> a(3), b(4);
a = gcd(a, b); // finds gcd becuase numer<double> is an associated class,
// making gcd visible in its namespace (global scope)
b = gcd(3, 4); // error: gcd is not visible
}
Run Code Online (Sandbox Code Playgroud)
此功能已用于在编译时捕获和检索元编程状态。
template <int X>
struct flag {
friend consteval int f(flag<X>);
};
template <int X, int N>
struct injecter { …Run Code Online (Sandbox Code Playgroud)