Enum系関数と富豪的プログラミング
Boost.AsioのライバルらしいTR2提案を読んでいました。
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1925.pdf
その中で名前解決のインタフェースを見てみると、
// Container of addresses. typedef vector<stream_address> stream_address_list; typedef vector<datagram_address> datagram_address_list; // Resolve host/port names to addresses. const stream_address_list resolve_stream(const string& host, const string& port); const datagram_address_list resolve_datagram(const string& host, const string& port); const stream_address_list resolve_stream(const string& port); const datagram_address_list resolve_datagram(const string& port);
なんと、アドレスクラスのvectorを返しています。(Move Semanticsの導入を期待してるんでしょうか、、、)
こういうのを見ていると、Enum系関数も全部vectorにしてしまえ、という気になってきます。ただ、for_eachタイプの軽さも、スレッドを使ったiterator実装も捨てがたく、未だに悩んでいたりします。