4

ユーザーがファイルからデコードされたオブジェクトを反復処理できるようにする C++ インターフェイスを設計しています。このデコード処理はやや遅いです。

これにはイテレータインターフェースを考えているのですが、不要なコピーは避けたいので(ユーザー側)以下を考えています。

for (const auto& object : file) {
    // you can access the members of `object` here
    std::cout << object.whatever() << std::endl;

    // you can copy `object` here
    myObjectCopy = object;

    // you CANNOT do this because `object` changes
    // as soon as the iterator advances
    myObjectPtr = &object;
}

object前の使用例の は、反復子インスタンスの内部にあるオブジェクトへの参照です。

これは間違っていますか?ここで他にどの慣用的なインターフェースを提案しますか?

ストリーム インターフェイスについて考えましたが (考えてみてstd::istreamください)、データを読み取るメソッドもコピーを返します (文字を抽出します)。

4

2 に答える 2