小编use*_*671的帖子

使用libc ++和libstdc ++的void*类型的stringstream行为的差异

以下测试程序返回不同的结果,具体取决于我使用的是libc ++还是libstdc ++.

#include <sstream>
#include <iostream>

int main()
{
    int a = 0;
    void* optr = &a;
    void* iptr;

    std::stringstream ss;
    ss << optr;
    std::cout << ss.str() << '\n';

    ss >> iptr;
    std::cout << iptr << '\n';

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在OSX 10.9.2上使用Xcode 5的以下版本的clang

$ xcrun clang++ --version              
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.1.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

这是使用libstdc ++和libc ++构建时的测试输出

$ xcrun clang++ test.cpp  <-- libstdc++ version             
$ ./a.out
0x7fff5ec723e8
0x7fff5ec723e8
$ xcrun clang++ test.cpp …
Run Code Online (Sandbox Code Playgroud)

c++ stringstream llvm libc++

7
推荐指数
1
解决办法
492
查看次数

标签 统计

c++ ×1

libc++ ×1

llvm ×1

stringstream ×1