【发布时间】:2015-08-01 08:40:10
【问题描述】:
在 Xcode 中运行以下 C++ 代码时:
std::wstring str1 = L"1111";
std::wstring str2 = str1;
void* ptr1 = (void*)str1.c_str();
void* ptr2 = (void*)str2.c_str();
结果是两个指针相等。这是按标准吗? 在 Visual Studio 中并非如此。
【问题讨论】:
-
您使用的是什么版本的 Xcode?我在 mac 上使用 Xcode/clang 没有得到这个结果。
-
Xcode 6.3.1 和 C++ 方言 gnu++11(编译器选项:-std=gnu++11)
-
建议您使用 -stdlib=libc++ 选项。这是一个更符合标准的实现,是新项目的默认设置。
标签: c++ xcode string c++11 stl