奇怪的行为<<(至少在我看来)

mau*_*eio 5 c++ cout

我无法意识到如何在没有编译器投诉的情况下以这种方式打印字符串:

std::cout << "Hello " "World!";
Run Code Online (Sandbox Code Playgroud)

实际上,上面这行的工作原理如下:

std::cout << "Hello " << "World!";
Run Code Online (Sandbox Code Playgroud)

这种行为有解释吗?

Luc*_*ore 11

相邻的文字标记会自动连接,这是标准的一部分.

2.1翻译阶段[lex.phases]

6)相邻 普通字符串 文字标记是连接的. 相邻的宽字符串文字标记是连接的.

(C++ 03)