求对bitset.to_string的标准用法的解释

ox_thedarkness ox_thedarkness 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
C++ Primer第三版,4.12 bitset Operations 这一节中详细介绍了std::bitset 类。原文声称:

"
    ....
    bitset< 32 > bitvec3( 012 );
    ....
we can convert any bitset object into a string representation using the to_string() operation:
    string bitval( bitvec3.to_string() );
    ....
"
[ C++ Primer,3rd, P170~ 171 ]

然而在 VC 7.1 / DEV C++ 4.9.8 中这样的操作都是编译期错误:

=========================
std::bitset< 32 > bts;
bts.to_string();
=========================

bitset::to_string()在 VC 7.1中的原型返回 basic_string<_Elem,_Traits,_Ax> ,而to_string函数模版没有直接指派这三个参数。
调用时必须
=========================
a.to_string< char, std::char_traits<char>, std::allocator< char > > ();
=========================

我想问一下,究竟哪个符合C++标准? 难道C++ Primer仍然不是最纯正的ANSI C++么? 或者VC和DevC++编译器在这一点上不符合标准? 又或者标准变迁了?
如果C++ Primer在某些地方犯了类似错误,那么我读完他之后应该读什么书?
...全文

相关推荐

bitset用法 bitset用法

bitset用法bitset用法bitset用法bitset用法bitset用法bitset用法

zyt325614

基于C++ bitset常用函数及运算符(详解)

下面小编就为大家带来一篇基于C++ bitset常用函数及运算符(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

weixin_38685608

认识C++中的bitset类型

认识标准库bitset类型   位是用来保存一组项或者条件的yes/no(1或者0)信息的一种简洁方法,那么位集是二进制位的有序集。C++中标准库提供的bitset类在我们程序中很有效的简化了对于位集的处理。   bitset对象的定义   我们要使用bitset,首先需要包含头文件bitset。和vector对象不一样的是bitset类型对象的区别仅在其长度而不在其类型。在定义bitset的时候,要明确bitset包含了多少位,须在尖括号内给出它的长度值。长度值必须定义为整形字面值常量或是已用常量值初始化的整型的const对象。   1 const int maxn=16;   2

weixin_38637272

C++ std::bitset使用精讲[代码]

本文详细介绍了C++标准库中的std::bitset类,包括其定义与初始化、操作接口、高级用法、线程安全性以及实际应用场景。std::bitset是一个用于处理固定大小位集的模板类,提供了丰富的位操作功能,如设置、清除、翻转和测试位。文章通过多个示例展示了如何使用std::bitset解决实际问题,如快速判断数据是否在集合中、求集合的交集和并集、数据统计次数等。此外,还讨论了std::bitset的优缺点,帮助读者更好地理解其适用场景和限制。

iii12

C++下bitset简介

C++下的bitset,强大而简单的位运算功能,象使用数组一样对位进行操作

hiapollo
评论 3
收藏 已收藏
分享
返回顶部
ox_thedarkness
C++ 语言 65,214 成员 250,514 内容