続 ASIOのバッファサイズ

よく考えると、2のn乗だけを扱うのであれば、最小値と最大値だけ返せば済む気がしてきました。

class asio_device
{
public:
    // 最小バッファサイズと最大バッファサイズを返す。
    std::pair<long,long> minmax_buffer_size() const;
};

あるいは全部まとめて、

struct asio_buffer_info
{
    long min_size;
    long max_size;
    long preferred_size;
    long granularity;
};

class asio_device
{
public:
    // ASIOGetBufferSize()の結果を全て返す
    asio_buffer_info buffer_info() const;
};

軽量で、情報の欠落もないわけですから、これで全然問題ないのです。
どうも、あらゆるものを反復子やストリームとして考えるのが癖になっているようで、ダメですね。シンプルイズベスト。