我在我的应用程序中有一个生产者/消费者设计,它在用户类型上实现生产者/消费者功能。但对于标准库,特别是对于算法而言,它并不是很自然。C++和枚举
在C#中有Enumerable和Observable概念,可以用来轻松实现像这样的东西,并获得很多不错的免费功能。
在C++中有我认为可能有用的ios,istream,ostream,input_iterator,output_iterator概念。但在我看来,所有这些都是针对原始字符类型的,例如char,int等...而不是用户类型。
当然,我可以使用真正的功能,如产品/消费者和std :: mem_fn算法。但我希望有更好的办法。
我正在寻找一些关于如何去设计I/O类似C++用户类型的解决方案的最佳实践建议。
E.g.来自C#
class FrameProducer : IEnumerable<Frame> // pull frames
{...}
// Some engine between
class FrameConsumer : IObserver<Frame> // push frames
{...}
我希望在C++中有类似的东西,例如我不相信这是可能的。
class FrameProducer : istream<Frame> // pull frames
{...}
// Some engine between
class FrameConsumer : ostream<Frame> // push frames
{...}
也许我在想这个问题,应该去KISS。
想法?
你为什么在谈论C#?这是C++,忘记了解C#并开始用C++编程。说“我会用X语言这样做,我怎么能把它翻译成Y语言”总是会失败,你必须从头开始学习Y语言,这样你才能知道Y语言是如何完成的。[一本好书帮助(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。哦,我不明白这个问题。当你把语言X带入关于Y语言的问题时,很多懂Y语言的人需要你解释X语言特性。 – GManNickG 2010-08-21 20:22:53
您能否更好地解释“用户类型的产品/消费函数”的含义? – Dacav 2010-08-21 20:24:34
无论我说什么语言,都不重要。我只是选择了C#,因为它具有与C++及其迭代器和算法类似的LINQ概念,因此很方便。 我的问题是为什么C + + ios概念不允许用户类型和有什么替代方案。 – ronag 2010-08-21 20:26:29