假设我有这段代码。
#include <string>
int main()
{
std::string(0);
return 0;
}
写入std::string(0)
导致std::basic_string<char>::basic_string(const char*)
被调用,with0
作为此构造函数的参数,它试图将参数视为指向 C 字符串的指针。
运行此代码显然会导致std::logic_error
被抛出。但我的问题是:为什么 GCC 和 MSVC 8.0 都不发出任何警告?我希望看到类似于“从没有强制转换的整数制作指针”的内容。