相关疑难解决方法(0)

谁设计/设计了C ++的IOStreams,并且按照当今的标准,它仍然被认为设计良好吗?

首先,似乎我在征求主观意见,但这并不是我所追求的。我很想听听有关该主题的一些有充分根据的论点。


为了对如何设计现代流/序列化框架有所了解,我最近得到了Angelika Langer和Klaus Kreft撰写的《Standard C ++ IOStreams and Locales》一书的副本。我发现,如果IOStreams的设计不当,那么它就不会首先进入C ++标准库。

在阅读了本书的各个部分之后,我开始怀疑IOStreams是否可以从整体架构的角度与STL进行比较。阅读例如对Alexander Stepanov(STL的“发明人”)的采访,以了解有关STL的一些设计决策。

特别令我惊讶的是

  • 谁来负责IOStreams的总体设计似乎是个未知数(我很想阅读有关此的一些背景信息-有人知道好的资源吗?);

  • 一旦你钻研输入输出流,例如眼前表面之下,如果你想输入输出流用自己的类扩展,你会得到一个接口具有相当神秘和扑朔迷离的成员函数的名称,例如getloc/ imbueuflow/ underflowsnextc/ sbumpc/ sgetc/ sgetnpbase/ pptr/ epptr(和有可能甚至更糟的例子)。这使得了解整体设计以及单个零件如何协作变得更加困难。即使我上面提到的那本书没有帮助多(恕我直言)


因此,我的问题是:

如果你要判断今天的软件工程标准(如果确实对这些任何普遍同意),将C ++的输入输出流仍然被认为是经过精心设计?(我不想通过通常认为过时的方法来提高软件设计技能。)

c++ iostream

125
推荐指数
7
解决办法
1万
查看次数

应该在C++代码中使用哪个CI/O库?

在新的C++代码中,我倾向于使用C++ iostream库而不是C stdio库.

我注意到一些程序员似乎坚持stdio,坚持认为它更便携.

这是真的吗?有什么好用的?

c++ iostream stdio

33
推荐指数
7
解决办法
1万
查看次数

如何从标准流中获取自己的流?

如何从标准流中获取自己的流?

在C#语言中,有一个Stream类,但C++的流太复杂了.

我想要这样的东西:

class my_stream : public std::stream
{
  // How to derive?
};

void using_a_stream(std::stream* s)
{
  *s << "Hello world";
}

void main()
{
  std::stream s1;
  std::fstream s2("C:\\test.txt");
  my_stream s3;

  using_a_stream(&s1);
  using_a_stream(&s2);
  using_a_stream(&s3);
}
Run Code Online (Sandbox Code Playgroud)

注意:代码只是一个示例,可能是无效的C++程序.谢谢.

c++ iostream

6
推荐指数
1
解决办法
4607
查看次数

标签 统计

c++ ×3

iostream ×3

stdio ×1