std::ios_base::xalloc

来自cppreference.com
< cpp‎ | io‎ | ios base

 
 
 
std::ios_base
成员函数
原文:
Member functions
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
格式化
原文:
Formatting
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
语言环境
原文:
Locales
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
内部可扩展的阵列
原文:
Internal extensible array
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
ios_base::xalloc
杂项
原文:
Miscellaneous
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
会员类别
原文:
Member classes
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
会员类型
原文:
Member types
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
 
static int xalloc();
返回一个唯一的(程序范围内)的指数值,可用于访问一个longvoid*元素,通过调用私有存储iword()pword()。因此,要求xalloc不分配内存
原文:
Returns an unique (program-wide) index value that can be used to access one long and one void* elements in the private storage by calling iword() and pword(). The call to xalloc does not allocate memory.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

(无)
原文:
(none)
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

独特的整数使用PWORD / iword指数
原文:
unique integer for use as pword/iword index
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

[编辑]

衍生流对象的运行时类型识别使用基类PWORD的存储空间.
原文:
Uses base class pword storage for runtime type identification of derived stream objects.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

#include <iostream>
 
template<class charT, class traits = std::char_traits<charT> >
class mystream : public std::basic_ostream<charT, traits>
{
 public:
    static const int xindex;
    mystream(std::basic_ostream<charT, traits>& ostr) :
        std::basic_ostream<charT, traits>(ostr.rdbuf())
    {
         this->pword(xindex) = this;
    }
 
    void myfn()
    {
        *this << "[special handling for mystream]";
    }
};
 
// each specialization of mystream obtains a unique index from xalloc()
template<class charT, class traits>
const int mystream<charT, traits>::xindex = std::ios_base::xalloc();
 
// This I/O manipulator will be able to recognize ostreams that are mystreams
// by looking up the pointer stored in pword
template<class charT, class traits>
std::basic_ostream<charT,traits>& mymanip(std::basic_ostream<charT,traits>& os)
{
 if (os.pword(mystream<charT,traits>::xindex) == &os)
    static_cast<mystream<charT,traits>&>(os).myfn();
 return os;
}
 
int main()
{
    std::cout << "cout, narrow-character test " << mymanip << '\n';
 
    mystream<char> myout(std::cout);
    myout << "myout, narrow-character test " << mymanip << '\n';
 
    std::wcout << "wcout, wide-character test " << mymanip << '\n';
 
    mystream<wchar_t> mywout(std::wcout);
    mywout << "mywout, wide-character test " << mymanip << '\n';
}

输出:

cout, narrow-character test
myout, narrow-character test [special handling for mystream]
wcout, wide-character test
mywout, wide-character test [special handling for mystream]

[编辑] 另请参阅

如果有必要的话,调整私有存储的大小,并且访问位于提供的下标的void*元素
原文:
resizes the private storage if necessary and access to the void* element at the given index
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
如果有必要的话,调整私有存储的大小,并且访问位于提供的下标的long元素
(公开成员函数) [编辑]