我在我的應用程序中有一個生產者/消費者設計,它在用戶類型上實現生產者/消費者功能。但對於標準庫,特別是對於算法而言,它並不是很自然。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