- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在创建一个特殊的 std::streambuf 和 std::ostream 实现。为此,我需要实现 std::streambuf::overflow
功能。该函数 protected ,只能由 std::streambuf::sputc
调用和 std::streambuf::xsputn
并且仅当缓冲区中没有更多空间时(即 pptr() == epptr()
)。默认行为是返回 eof
, 所以调用函数代替 sputc
显然是不正确的.
然而 std::stringbuf
的 GNU libc 实现并插入实现 boost::io::alt_stringbuf
在 Boost.Format 中仍然检查是否 pptr() < epptr()
在这种情况下,只需附加字符即可。在后一种情况下,甚至大胆地调用 sputc
(因此依赖于如果缓冲区中仍有空间它不会调用 overflow
的事实)。
实现这个案例的原因是什么?
好吧,我不太明白另一种情况,overflow(eof())
, 任何一个。尽管明确指定,但它似乎并未在任何地方实际使用。
最佳答案
问题似乎是为什么实现检查 this->pptr() == this->epptr()
:简单的原因是进一步的派生类可能最终调用 protected
函数!当缓冲区中有空间时,标准 C++ 库永远不会调用 overflow()
。有一段时间我还检查过 this->pptr() == this->epptr()
但我已经停止这样做了:隐含的契约是进一步的派生类不会做傻事东西。
提出的另一个问题是:用参数 traits_type::eof()
调用 overflow()
是什么意思?尽管我一直在处理这种情况,但这是标准 C++ 库中不会发生的另一种情况:目的是让 overflow()
刷新流。也就是说,sync()
只会调用 this->overflow(traits_type::eof())
。在实践中,我发现从 overflow()
调用 sync()
可能在将字符存储到缓冲区之后(即 sync()
)更合理> woube 使用 pptr() == epptr() + 1
调用,当然,假设分配的缓冲区至少有一个字符的空间。
关于c++ - std::streambuf::overflow 的正确实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20667951/
我正在使用 bootstraptable 并试图让单元格显示溢出的内容但只显示向下(即 overflow-y)。问题是,bootstraptable css 使用 overflow: hidden o
来自文档:溢出: The overflow shorthand CSS property sets what to do when an element's content is too big to
有多个这样命名的问题,但我没有找到一个适用于我的情况,所以我在这里: 在这段代码中: #container:hover { overflow-x: hidden; } #container {
我正在学习 Haskell,但遇到了我没想到的异常“堆栈溢出”。 代码相当简单: type Reals = Double prod :: Reals -> Reals -> Reals prod a
我通读了this question并且没有看到我的问题是否有解决方案。 我创建了一个 CodePen这表明了这个问题。我希望隐藏红色边框左侧和右侧 (overflow-x) 的所有内容,但保持顶部和底
我有一张 bootstrap 4 卡,我想在其中隐藏字幕的溢出(并显示“...”)。我怎样才能实现这个目标?如果可能的话使用纯引导代码... Test object Added by
我今天更新了我的 flutter ,现在堆栈小部件中的溢出参数不再有效。 Flutter 1.22.0-10.0.pre.252 • channel master • https://github.c
使用 border-radius Opera 实际上不会隐藏元素的溢出部分。我已经尝试应用我设法在类似线程中找到的东西,例如定义边框样式或注意使用绝对和相对参数进行定位。但它仍然无法正常工作。 htm
我在固定大小的 div 中有一个表。如果表格溢出 div,我希望滚动条出现。我还想在向下滚动时克隆表格的标题,以便标题持久存在。我遇到的问题是我希望水平滚动条滚动克隆的标题和原始表格,而垂直滚动条
奇怪,我以为 overflow-x 和 overflow-y 都被广泛支持,但后来我才看到它只支持 CSS3( http://reference.sitepoint.com/css/overflow
unsigned long long terms; unsigned long long test; unsigned long long digit = 1; unsigned long long
我有一个案例,我必须使用 overflow-x:scroll; 水平显示内容。 现在在这个Fiddle第一个 block 有 overflow-y:scroll; 提供滚动,用户可以滚动内容。在第二个
您好,我正在尝试只使用 overflow-x 而不是 overflow-y 结构是这样的 Head1 feild1
我有一个正在运行的计划作业,我想计算过去 30 天的时间。为此,我收到一条警告,表示在表达式中检测到数字溢出。我怎样才能安全地给予 30 天? @Override @Scheduled(cro
我有一个父级,它有多个子级,当父级宽度溢出时,我喜欢显示水平滚动条。 我不想使用“display:inline-block”属性,因为它们之间会产生空白。 这是我的尝试: .parent{ wid
我正在为导航栏编写一些 CSS,我需要为下拉菜单使用 max-height 和 overflow-y: scroll 以便确保它适合页面。但是,每当我将 overflow-y 属性设置为滚动时,它似乎
这是我的问题。我有一个旋转木马,它也像菜单一样。当选项卡的数量高于浏览器可用的宽度空间时,将出现轮播控件。一切正常。但我还在每个选项卡上添加了一个下拉菜单,这就是问题所在。如果我设置 overflow
这个问题在这里已经有了答案: CSS overflow-x: visible; and overflow-y: hidden; causing scrollbar issue (10 个答案) 关
这个问题在这里已经有了答案: How do you keep parents of floated elements from collapsing? [duplicate] (15 个答案) W
这是一个代码片段: div.one { width: 98%; border: 5px solid black; overflow-x: visible; overflow-y: hi
我是一名优秀的程序员,十分优秀!