网站建设厃金手指花总十一,html视频网站源码,公司招牌制作价格,中企动力大连公司咋样定义于头文件 ios class ios_base;
类 ios_base 是作为所有 I/O 流类的基类工作的多用途类。它维护数种数据#xff1a;
1) 状态信息#xff1a;流状态标志#xff1b;
2) 控制信息#xff1a;控制输入和输出序列格式化和感染的本地环境的标志#xff1b;
3)…定义于头文件 ios class ios_base;
类 ios_base 是作为所有 I/O 流类的基类工作的多用途类。它维护数种数据
1) 状态信息流状态标志
2) 控制信息控制输入和输出序列格式化和感染的本地环境的标志
3) 私有存储允许 long 和 void* 成员的有下标可扩展数据结构它可以实现为二个任意长度的数组或二元素结构体的单个数组或另一容器
4) 回调从 imbue() 、 copyfmt() 和 ~ios_base() 调用的任意数量用户定义函数。
典型实现保有对应下列 fmtflags 、 iostate 、 openmode 及 seekdir 所有值的成员常量维护当前精度、宽度、格式化标志、异常掩码、缓冲区错误状态、保有回调的可调大小容器、当前感染的 locale 、私有存储的成员变量及 xalloc() 所用的静态整数变量。 本地环境
设置本地环境
std::ios_base::imbue std::locale imbue( const std::locale loc );
设置流的关联本地环境为给定值。在返回前以 imbue_event 为参数调用 register_callback() 所注册的每个函数。
参数
loc-要关联到流的新 locale
返回值
操作前与流关联的 locale 对象。 返回当前本地环境
std::ios_base::getloc std::locale getloc() const;
返回当前与流关联的 locale 。
参数
无
返回值
与流关联的 locale 对象。 内部可扩展数组
返回能安全用作 pword() 和 iword() 下标的程序范围内独有的整数
std::ios_base::xalloc static int xalloc();
返回程序范围内唯一的值它能用于通过调用 iword() 和 pword() 访问 std::ios_base 的私有存储中一个 long 和一个 void* 元素。到 xalloc 的调用不分配内存。
此函数线程安全从多个线程共时访问不导致数据竞争。 (C14 起)
等效地自增 std::ios_base 的私有静态数据成员如同以执行 return index; 若 index 是该静态成员的名称它可以为 std::atomic 或以其他方式以支持多线程共时访问 (C14 起)。
参数
无
返回值
用作 pword/iword 下标的独有整数。 调用示例
#include array
#include tuple
#include ctime
#include string
#include iostream
#include sstream
#include iomanip
#include codecvt
#include localeusing namespace std;templateclass charT, class traits std::char_traitscharT
class mystream : public std::basic_ostreamcharT, traits
{
public:static const int xindex;mystream(std::basic_ostreamcharT, traits ostr) :std::basic_ostreamcharT, traits(ostr.rdbuf()){this-pword(xindex) this;}void myfn(){*this [special handling for mystream];}
};// 每个 mystream 特化从 xalloc() 获得独有的下标
templateclass charT, class traits
const int mystreamcharT, traits::xindex std::ios_base::xalloc();// 此 I/O 操纵符将能用于辨识身为 mystream 的 ostream
// 通过查找存储于 pword 的指针
templateclass charT, class traits
std::basic_ostreamcharT, traits mymanip(std::basic_ostreamcharT, traits os)
{if (os.pword(mystreamcharT, traits::xindex) os){static_castmystreamcharT, traits(os).myfn();}return os;
}int main()
{std::cout cout, narrow-character test mymanip std::endl;mystreamchar myout(std::cout);myout myout, narrow-character test mymanip std::endl;std::wcout wcout, wide-character test mymanip std::endl;mystreamwchar_t mywout(std::wcout);mywout mywout, wide-character test mymanip std::endl;return 0;
}
输出 如果有必要的话调整私有存储的大小并且访问位于提供的下标的long元素
std::ios_base::iword long iword( int index );
首先充分地分配或重置私有存储 long 的动态数组或另一可索引数据结构以确保 index 是合法下标然后返回到带下标 index 的私有存储 long 元素。
引用可能被此 ios_base 对象上任何其他操作非法化包含另一对 iword() 的调用但维持返回值使得以相同下标从 iword(index) 读取将产生相同值直至下次到 copyfmt() 的调用。值能用于任何目的。必须通过先前的 xalloc() 调用获得元素下标否则行为未定义。新元素初始化为 0 。
若分配失败则调用可能抛出 std::ios_base::failure 的 std::basic_ios::setstate(badbit) 。
参数
index-元素的下标值
返回值
到该元素的引用。
异常
设置 badbit 时可能抛出 std::ios_base::failure 。 调用示例
#include array
#include tuple
#include ctime
#include string
#include iostream
#include sstream
#include iomanip
#include codecvt
#include localeusing namespace std;#include iostream
#include stringstruct Foo
{static int foo_xalloc;std::string data;Foo(const std::string s) : data(s) {}
};// 分配 Foo 对象所用的 iword 存储
int Foo::foo_xalloc std::ios_base::xalloc();// 若 iword 保有 1 则此用户定义 operator 打印字符串
std::ostream operator(std::ostream os, Foo f)
{if (os.iword(Foo::foo_xalloc) 1){return os std::string(f.data.rbegin(), f.data.rend());}else{return os f.data;}
}// 此 I/O 操纵符在 0 与 1 间翻转存储于 iword 的数
std::ios_base rev(std::ios_base os)
{os.iword(Foo::foo_xalloc) !os.iword(Foo::foo_xalloc);return os;
}int main()
{Foo f(example);std::cout f \n rev f \n rev f \n;return 0;
}输出 若需要则重置私有存储的大小并访问位于指定下标的 void* 元素
std::ios_base::pword void* pword( int index );
首先充分地分配或重置私有存储 void* 的动态数组或另一可索引数据结构以确保 index 是合法下标然后返回到带下标 index 的私有存储 void* 元素。
引用可能被此 ios_base 对象上任何其他操作非法化包含另一对 pword() 的调用但维持返回值使得以相同下标从 pword(index) 读取将产生相同值直至下次到 copyfmt() 的调用。值能用于任何目的。元素下标必须由 xalloc() 获得否则行为未定义。初始化新元素为 NULL 。
若分配失败则调用可能抛出 std::ios_base::failure 的 std::basic_ios::setstate(badbit) 。
参数
index-元素的下标值
返回值
到该元素的引用。
异常
设置 badbit 时可能抛出 std::ios_base::failure 。
注意
若存储于 pword 的指针要求管理则可用 register_callback() 安装按需执行深复制或解分配的处理函数。 调用示例
#include array
#include tuple
#include ctime
#include string
#include iostream
#include sstream
#include iomanip
#include codecvt
#include locale
#include stringusing namespace std;templateclass charT, class traits std::char_traitscharT
class mystream : public std::basic_ostreamcharT, traits
{
public:static const int xindex;mystream(std::basic_ostreamcharT, traits ostr) :std::basic_ostreamcharT, traits(ostr.rdbuf()){this-pword(xindex) this;}void myfn(){*this [special handling for mystream];}
};// 每个 mystream 特化从 xalloc() 获得独有的下标
templateclass charT, class traits
const int mystreamcharT, traits::xindex std::ios_base::xalloc();// 此 I/O 操纵符将能用于辨识身为 mystream 的 ostream
// 通过查找存储于 pword 的指针
templateclass charT, class traits
std::basic_ostreamcharT, traits mymanip(std::basic_ostreamcharT, traits os)
{if (os.pword(mystreamcharT, traits::xindex) os){static_castmystreamcharT, traits(os).myfn();}return os;
}int main()
{std::cout cout, narrow-character test mymanip \n;mystreamchar myout(std::cout);myout myout, narrow-character test mymanip \n;std::wcout wcout, wide-character test mymanip \n;mystreamwchar_t mywout(std::wcout);mywout mywout, wide-character test mymanip \n;
}
输出