\xc2\xa710.4/3详细给出了 decl-reachable 所有可能的情况。然而,我无法完全理解它。考虑\xc2\xa710.4/6中描述的示例:
\nSource file "foo.h":\n namespace N {\n struct X {};\n int d();\n int e();\n inline int f(X, int = d()) { return e(); }\n int g(X);\n int h(X);\n}\n\nModule M interface:\nmodule;\n#include "foo.h"\nexport module M;\ntemplate<typename T> int use_f() {\n N::X x; // N\xe2\x80\x8b::\xe2\x80\x8bX, N, and \xe2\x80\x8b::\xe2\x80\x8b are decl-reachable from use_\xc2\xadf\n return f(x, 123); // N\xe2\x80\x8b::\xe2\x80\x8bf is decl-reachable from use_\xc2\xadf,\n // N\xe2\x80\x8b::\xe2\x80\x8be is indirectly decl-reachable from use_\xc2\xadf\n // because it is decl-reachable from N\xe2\x80\x8b::\xe2\x80\x8bf, and\n // N\xe2\x80\x8b::\xe2\x80\x8bd …Run Code Online (Sandbox Code Playgroud)