c++ - 多行注释和换行

标签 c++ c++11 c-preprocessor

在 C++11 中,标准在 2.2.3 中说:

Each comment is replaced by one space character. New-line characters are retained.

  1. 这个短语是连续的,意思是为以换行符结尾的注释保留换行符?

  2. 如果 (1) 为真,那么为什么 Visual C++、gcc 和 clang 为多注释中的每一行保留空行。

这个问题很重要,因为我正在编写一个 C++ 预处理器。

最佳答案

它所说的新行是在注释被单个空格字符替换后仍然存在的行。当在包含它的段落的更大上下文中查看该片段时,这一点会更清楚。

因此特别是多行注释中的新行保留,并且不终止预处理指令。

关于c++ - 多行注释和换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15445593/

相关文章:

c++ - 将 <vector><string> 转换为 <vector><int> C++, Win32

c++ - 使用来自可变参数模板类的特定参数调用函数

c - 错误: '#' is not followed by a macro parameter

c++ - Boost.Asio strand.dispatch() 可以阻塞吗?

c++ - 使用 friend 关键字查找模板函数

c++ - 如何用空指针初始化 unique_ptr 的 vector ?

c++ - 为什么在 C++11 中需要 decltype?

c++ - 使用 ROS 在 C++11 中 boost 文件系统段错误

C 预处理器指令 (SQR-Funktion)

c++ - C++ 中的 Typedef 函数指针