发布于 2015-02-04 13:51:27
只有文件流才需要使用std::codecvt<...>,并且不要求任何标准流对象都是按文件流实现的。这两种选择的实施者都有理由。Dinkumware的实现在其大多数操作中都使用<stdio.h>,在这种情况下使用相同的实现是有意义的。libstdc++避免了一些开销,直接访问标准C流和C++流之间共享的缓冲区,从而使用不同的流实现。
当使用文件流时,std::codecvt<...>方面的使用应该是一致的。
发布于 2017-10-18 20:07:21
编解码标题存在于gcc 5.1。
发布于 2015-02-04 13:43:11
与g++一起提供的g++尚未实现c++11标准。在我的版本中,<codecvt>头完全丢失了。
f.jardon@xxxx 14:40:40 ~
$ find /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/ -name codecvt
f.jardon@xxxx 14:41:17 ~这并不是唯一遗漏的东西:
f.jardon@xxxx 14:46:22 ~
$ grep -rl wbuffer_convert 'c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/'
c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/cvt/wbuffer
c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/cvt/xtest
c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xlocbuf
f.jardon@xxxx 14:46:25 ~
$ grep -rl wbuffer_convert /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/include/c++/https://stackoverflow.com/questions/28319642
复制相似问题