我正在创建一个自定义的语言环境,通过继承
我已经阅读了关于存储指针的另一篇文章,但该文章没有足够的答案。我也阅读了这个例子,它假设它是一个32位类型,尽管标准规定
我的问题是:我可以安全地在std::mbstate_t中存储什么?我可以安全地将其替换为另一种类型吗?上面的文章建议替换它,但下面的评论则表示相反。
std::codecvt
实现。大多数要实现的方法都很直接,除了这个 std::mbstate_t
。在我的编译器 vs2010 中,它被声明为一个 int
。但是,谷歌告诉我它是一个 POD 类型,有时是联合体(我不知道是哪些)或者结构体(同样我也找不到)。据我所知,std::mbstate_t
是部分转换的占位符。而且,当 std::codecvt::on_out()
需要更多空间来写输出时,我认为它会发挥作用,这反过来又会调用 std::codecvt::do_unshift()
。如果我的假设有误,请纠正我。我已经阅读了关于存储指针的另一篇文章,但该文章没有足够的答案。我也阅读了这个例子,它假设它是一个32位类型,尽管标准规定
int
不少于16位。我的问题是:我可以安全地在std::mbstate_t中存储什么?我可以安全地将其替换为另一种类型吗?上面的文章建议替换它,但下面的评论则表示相反。