【发布时间】:2026-02-23 14:05:02
【问题描述】:
假设如下代码:
#include <iostream>
#include <string>
int func() { return 2; }
int main()
{
std::string str("str");
str = func();
std::cout << "Acquired value: '" << str << "'" << std::endl;
return 0;
}
为什么str = func(); 行编译时没有类型不匹配的警告?
我正在使用编译器 gcc v. 4.7.1 并设置了 -std=c++11 标志。
输出:
Acquired value: ''
【问题讨论】: