为什么标准C++中两个直接字符串常量不能相加

这是《Accelerated C++》一书的第一章的课后题 - 下面的编译是否有问题?

1:

const std::string hello = “Hello”;
const std::string message = hello + “, world” + “!”;

2:

const std::string exclam = “!”;
const std::string message = “Hello” + “, world” + exclam;

第一部分是可以编译成功的,而第二部分是不行的。为什么? Continue reading