AFAIK,在升级到 MinGW 4.4 之后。* 前段时间我所有的字面上写的字符串(比如 "i'm the string"
)都被视为输入 std::string
。是否有任何命令行选项可以使 MinGW 像以前一样将它们视为 const char*
?
最佳答案
在 C/C++ 中,字符串默认是 char *
/char[]
,只有当你明确说它是一个 std::string
时你会得到那些。
示例:
std::cout << "first:\t" << typeid("aa").name() << std::endl;
std::cout << "second:\t" << typeid(std::string("a")).name() << std::endl;
输出:
first: A3_c
second: Ss
结果:
- 第一个:长度为 3 的
char
数组(= 2 个字符 + 结尾) - 第二个:是一个
std::string
如您所见,如果您编写"abc"
,您不会得到std::string
。
但是:如果你写 std::string str = "abc"
你会得到一个 std::string
因为赋值运算符 ( =
) 用于:string& operator= (const char* s)
关于c++ - 如何让 MinGW 将 "text"之类的文本视为 const char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6750549/