streampos
とpos_type
とstreamoff
とoff_type
の違いは何ですか?それらの定義が異なる点は何ですか? basic_stream<>::seek
の機能はどうすればいいですか?streamposとpos_type、streamoffとoff_typeの違いは何ですか?
答えて
std::basic_istream
およびstd::basic_ostream
は両方とも、CharT
およびTraits
の2つのテンプレートタイプをとる。基本ストリームのうちの1つから導出されたクラスA所与、Traits
データ型はC++標準の§21.2によれば
A::traits_type
として取得することができ、このデータ型は、以下のメンバーの種類を提供しなければならない。
char_type // must be identical to CharT of the basic-stream
off_type
pos_type
(およびこの質問に関係のないいくつかのさらなるデータタイプ)。 off_type
とpos_type
の意図された意味、way the std::basic_istream<>::seekg()
method is defined与えられます。
pos_type
がoff_type
は、相対的な位置だから、
のために使用されているストリームで絶対位置のために使用され、使用したい場合seekg()
の絶対バージョンの場合、宣言するデータ型はA::pos_type
(これはA::traits_type::pos_type
と同じです)。相対バージョンはA::off_type
です。 std::streampos
とstd::streamoff
について
:これらはtraits_type
のデフォルトバージョンのために使用されているデータ型として標準で、あまりにも、定義されています。つまり、あなたが明示的Traits
テンプレートパラメータを指定しない場合、A::pos_type
は実際ではstd::streampos
なり、A::off_type
は実際ではstd::streamoff
になります。
あなたがTraits
の独自のバージョンを作成してstd::basic_istream<>
などのような標準ライブラリのテンプレートでそれを使用したい場合は、あなたがpos_type
とoff_type
のためのtypedef(および他のデータ型の多くを)含まれ、それらが遵守を確認する必要があります標準の§27.2.2と§27.3を参照してください。
- 1. $と$$の違いは何ですか?
- 2. `##`と `hashCode`の違いは何ですか?
- 3. typedefとの違いは何ですか?
- 4. NodeJS:「./ ..」と「..」の違いは何ですか?
- 5. {}())と{})の違いは何ですか?
- 6. `&`と `ref`の違いは何ですか?
- 7. `==`と `is`の違いは何ですか?
- 8. difftimeと ' - 'の違いは何ですか?
- 9. #{} $ {}と%{}の違いは何ですか?
- 10. ⊕と+の違いは何ですか?
- 11. アペンダーと〜の違いは何ですか?
- 12. "./"と "../"の違いは何ですか?
- 13. "$^N"と "$ +"の違いは何ですか?
- 14. %Qと%{}の違いは何ですか?
- 15. バックスティックと$()の違いは何ですか?
- 16. A`と ``の違いは何ですか[:] `
- 17. リストと何か([_])と何か(_)の違い
- 18. パッケージのインポートobjと何かの違いをインポートパッケージとPythonの何かの違いは何ですか?
- 19. METADATAとMETADATA.jl:違いは何ですか?
- 20. twistdとnohup&:違いは何ですか?
- 21. libspeとlibspe2?違いは何ですか?
- 22. Backbone.jsとPusherapp - 違いは何ですか?
- 23. wp_link_pagesとthe_posts_pagination→違いは何ですか?
- 24. $ dirtyと$ invalid:違いは何ですか?
- 25. フレームとオブジェクトの違いは何ですか?フレームとオブジェクトの違いは何ですか?
- 26. XPathの//と?/の違いは何ですか?の使用は何
- 27. Javaではargsとargghとargvの違いは何ですか?
- 28. GoogleのDremelとは何ですか? Mapreduceとの違いは?
- 29. 「アソシエーション」と「リレーション」という用語の違いは何ですか?
- 30. トランザクションロールバックとコミットしないことの違いは何ですか?
+1さらに、 'pos_type'はスカラー番号ではなく、ファイル内のその位置にあるテキストエンコーディングの状態に関する情報も含みます。その意図された目的は以前に遭遇した位置に*戻る*であるが、 'off_type'はどこかで事前計算できる。 – Potatoswatter