使用 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/******/\nRun 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/******/\nRun 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/******/\nRun Code Online (Sandbox Code Playgroud)\n或这个文件:
\n/* tmp/quickndirtytesting.cpp */\nnamespace foo …Run Code Online (Sandbox Code Playgroud) 我是那种会系统地检查每个可切换选项的人,这次是clang-format在 VSCode 中。我发现了这个,我假设它列出了所有可以塞进.clang-format文件供 VSCode 使用的东西。不幸的是,VSCode 似乎无法识别其中的一些:
BitFieldColonSpacingBreakBeforeConceptDeclarationsEmptyLineBeforeAccessModifierIndentAccessModifierIndentRequiresSortIncludesSpaceAroundPointerQualifiersSpaceBeforeCaseColon在 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。
感谢您的时间。
在 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)
感谢您的时间。