是否有粘性操纵器的官方资源
Is There an Official Resource for Sticky Manipulators
标准是否定义了哪些 iomanip
操纵器是粘性的,哪些不是?
我一直发现自己指的是:
这是一个很好的答案,但甚至说:
on my version
再加上我在 http://en.cppreference.com or http://www.cplusplus.com 上找不到 sticky 的概念,这让我想知道这是否是一个实现定义的概念。
标准 C++ 库中实际上没有 sticky/non-sticky 操纵器的概念。标准 C++ 库中唯一的非粘性操纵器是 width()
。 None 的其他标准格式标志被更改为输入或输出的一部分。用户运营商做什么以及他们是否在使用后重置设置完全取决于他们。
不是"official",而是cppreference.com表示,在std::setw
The width property of the stream will be reset to zero (meaning "unspecified") if any of the following functions are called:
Input
Output
Overloads 1-7 of basic_ostream::operator<<()
(at Stage 3 of num_put::put()
) (1-7 are the integer, boolean, and pointer overloads)
operator<<(basic_ostream&, char)
and operator<<(basic_ostream&, char*)
std::put_money
(inside money_put::put()
)
std::quoted
(when used with an output stream)
作为 cppreference says 中的编辑历史,此列表是通过 grepping "width"
的标准草案编制的
所有其他操纵器都是 "sticky",因为它们执行的流状态更改会一直存在,直到再次明确更改。
标准是否定义了哪些 iomanip
操纵器是粘性的,哪些不是?
我一直发现自己指的是:
这是一个很好的答案,但甚至说:
on my version
再加上我在 http://en.cppreference.com or http://www.cplusplus.com 上找不到 sticky 的概念,这让我想知道这是否是一个实现定义的概念。
标准 C++ 库中实际上没有 sticky/non-sticky 操纵器的概念。标准 C++ 库中唯一的非粘性操纵器是 width()
。 None 的其他标准格式标志被更改为输入或输出的一部分。用户运营商做什么以及他们是否在使用后重置设置完全取决于他们。
不是"official",而是cppreference.com表示,在std::setw
The width property of the stream will be reset to zero (meaning "unspecified") if any of the following functions are called:
Input
Output
Overloads 1-7 of
basic_ostream::operator<<()
(at Stage 3 ofnum_put::put()
) (1-7 are the integer, boolean, and pointer overloads)
operator<<(basic_ostream&, char)
andoperator<<(basic_ostream&, char*)
std::put_money
(insidemoney_put::put()
)
std::quoted
(when used with an output stream)
作为 cppreference says 中的编辑历史,此列表是通过 grepping "width"
的标准草案编制的所有其他操纵器都是 "sticky",因为它们执行的流状态更改会一直存在,直到再次明确更改。