小编404*_*und的帖子

Rust 相当于 C++ 命名空间?

使用 C++ 命名空间,我可以将任何文件中的任何内容放在任何位置,并且在编译时它们将“合并”到单个命名空间中。因此,这个文件结构:

\n
/* src/main.cpp */\nint main() {\n    nsfoo::foo();\n}\n/******/\n\n/* src/foo/function.cpp */\nnamespace foo {\n    void foo(nsfoothing thing) {}\n}\n/******/\n\n/* src/foo/structures.cpp */\nnamespace foo {\n    struct nsfoothing {};\n\n    void nsfooprocessthing(nsfoothing thing) {}\n}\n/******/\n
Run Code Online (Sandbox Code Playgroud)\n

相当于有一个包含以下内容的文件:

\n
/* src/main.cpp */\nnamespace nsfoo {\n    struct nsfoothing {};\n    void foo(nsfoothing thing) {}\n    void nsfooprocessthing(nsfoothing thing) {}\n}\n\nint main() {\n    nsfoo::foo();\n}\n/******/\n
Run Code Online (Sandbox Code Playgroud)\n

或这个文件结构:

\n
/* src/main.cpp */\nint main() {\n    nsfoo:foo();\n}\n/******/\n\n/* src/foo/foo.cpp */\nnamespace nsfoo {\n    struct nsfoothing {};\n    void foo(nsfoothing thing);\n    void processnsfoothing(nsfoothing thing);\n}\n/******/\n
Run Code Online (Sandbox Code Playgroud)\n

或这个文件:

\n
/* tmp/quickndirtytesting.cpp */\nnamespace foo …
Run Code Online (Sandbox Code Playgroud)

namespaces module rust

3
推荐指数
1
解决办法
151
查看次数

VSCode 无法识别所有 .clang-format 选项

我是那种会系统地检查每个可切换选项的人,这次是clang-format在 VSCode 中。我发现了这个,我假设它列出了所有可以塞进.clang-format文件供 VSCode 使用的东西。不幸的是,VSCode 似乎无法识别其中的一些:

  1. BitFieldColonSpacing
  2. BreakBeforeConceptDeclarations
  3. EmptyLineBeforeAccessModifier
  4. IndentAccessModifier
  5. IndentRequires
  6. SortIncludes
  7. SpaceAroundPointerQualifiers
  8. SpaceBeforeCaseColon

在 VSCode 无法加载的少数选项中,仅能SortIncludes完全识别,但它只接受 bool,而不接受参考文献所说的可用选项。其余选项完全无法识别:

YAML:xxx:xxx: error: unknown key 'xxx'
Error reading /path/to/.clang-format: Invalid argument
Run Code Online (Sandbox Code Playgroud)

我是否遗漏了某些内容,或者 VSCode 不支持这些选项?我正在使用 Microsoft 的 C/C++ 扩展,在 Linux 上使用 VSCode。

感谢您的时间。

clang-format visual-studio-code

2
推荐指数
1
解决办法
5116
查看次数

有没有办法“丢弃” std::getline() 的输出参数?

在 C 中,getchar()可用于从输入缓冲区 ( char c = getchar();) 中获取字符,但也可以通过忽略返回值将该函数用作按键检测器。

char c = getchar(); // get a character
getchar(); // detect pressing the enter key
Run Code Online (Sandbox Code Playgroud)

在 C++ 中,我可以std::string in; std::getline(std::cin, in);用来获取输入。std::getline()似乎只接受std::string其第二个参数的引用。有什么我可以做的,以避免必须声明一个虚拟变量?

std::string in; // dummy variable
std::getline(std::cin, in); // discard the input anyway
Run Code Online (Sandbox Code Playgroud)

感谢您的时间。

c++

1
推荐指数
1
解决办法
54
查看次数