差分表示
サブルーチン(関数とかクラスとか)なソースをさらして置くページ.
実際に使っているものもあれば、
書いてみただけのモノもあり。
使うためってより、理解のための手習い、といったものもあり
(既存品の再実装なんかは正にそう)。
後でで何とかするかもしれないけど、
折角書いたんだし、とりあえずさらしておこう、というもの。
おもに C/C++. なるべく汎用的なつもりだけど、
実際に別のコンパイラでコンパイルしたら敗北するパターンは
いくらでもある(あった)ので、その程度のもの.
//特に明記していないかぎり、改造物や参考元がある場合は元に従い、
//下記のソースで私がかいたモノは Public Domain 扱い.
大半、ろくに使われず、チェックやデバッグがすんでないソースだろうで、
もし流用や参考にしようっという奇特な方は自己責任でお願いします.
#tbl2(width=92%,align=center,cellpadding=8,border=0,cellspacing=1, width1=20%,valign=top)
#tbl2_th
[[ExArgv>http://www.6809.net/tenk/html/sbr/ExArgv.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/ExArgv.h.html]]~
#tbl2_td
main() の初っ端で ExArgv_conv(&argc,&argv); のように実行することで
(あるいは WinMain での コマンドライン を渡すことで)、
argv中の *? ワイルドカード や @レスポンスファイル を argvとして展開済み
にするルーチン. (exe連動.cfgや環境変数の展開も設定可).
ワイルドカードは ** 指定で再帰検索可能.~
Cベース. Win/Linux(unix)用.
(unix系はワイルドカード展開はshellの役割なのであまり意味ないけど).
#tbl2_th
[[tiny_gettext>http://www.6809.net/tenk/html/sbr/tiny_gettext.zip]]
#tbl2_td
メッセージの多国語対応のための仕組みである gettext の、
簡易な代用ルーチン.
主に win 用(コンパイル自体はlinuxでもできるけど)。
.moファイルじゃなくて、exeフォルダにある.poファイルを読み込む.
(.poファイルは予めwinのロケール(日本ならSJIS)に変換しとく).
Cベース.
#tbl2_th
[[PerfCnt>http://www.6809.net/tenk/html/sbr/PerfCnt.h.html]]
#tbl2_td
時間計測用. [[ソートの計測:雑記/2010-01-11]]等で使ったルーチンを抜き出したもの.
Cベース. (win/linux)
#tbl2_th
[[fname>http://www.6809.net/tenk/html/sbr/fname.zip]]
#tbl2_td
ファイルや URL のパス文字列を操作する関数群.
パス名の部分取得やフルパス化相対パス化等を、(getcwd等せず)
文字列としての処理. MBC考慮.
win/linux(unix)を想定.
c文字列, C++のstring,CString用.
#tbl2_th
[[file_hdl>http://www.6809.net/tenk/html/sbr/file_hdl.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/file_hdl.h.html]]
#tbl2_td
win/linux(unix)のファイルハンドル/ディスクリプタを
用いたapi(open,read,write,close等)の薄いラッパー.
cベース.
~
※os api を主にしたまま共通化したい場合用...
というか、使うためってより、apiの対応表がわり、か.
(ちゃんと共通化ならC/C++標準ライブラリのものを使えばよく)
#tbl2_th
[[disk>http://www.6809.net/tenk/html/sbr/disk.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/disk.h.html]]
#tbl2_td
cベース.
win/linux 用. ディレクトリエントリ弄ったりするようなapi(CreateDirectory等)
の薄いラッパー や、[[途中も掘るmkdir>http://www.6809.net/tenk/html/sbr/disk_deep_mkdir.c.html]]、
[[テンポラリファイル>http://www.6809.net/tenk/html/sbr/TmpFile.c.html]]等.
#tbl2_th
[[FindFile>http://www.6809.net/tenk/html/sbr/FindFile.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/FindFile.h.html]]
#tbl2_td
C++. ディレクトリ検索クラス. ワイルド指定. (**による再帰検索可)
#tbl2_th
[[TimeCnv>http://www.6809.net/tenk/html/sbr/TimeCnv.h.html]]~
#tbl2_td
ファイル時間、年月日時分秒構造体等の変換関係のラッパー.
#tbl2_th
[[CharsetConv>http://www.6809.net/tenk/html/sbr/CharsetConv.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/CharsetConv.h.html]]
#tbl2_td
mlang または iconv を用いた文字エンコード変換クラス. C++.
(mlangが使えるのが実質vcのみだろうで、あとは、iconvが使えるかどうか).
#tbl2_th
[[intrusive_ptr_ref_count>http://www.6809.net/tenk/html/sbr/intrusive_ptr_ref_count.h.html]]
#tbl2_td
C++. boost::intrusive_ptrの対象にするクラス用の参照カウンタ処理.
#tbl2_th
[[vecmap>http://www.6809.net/tenk/html/sbr/vecmap.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/vecmap.h.html]]
#tbl2_td
C++. vectorをmap風にするアダプタ.
#tbl2_th
[[vecque>http://www.6809.net/tenk/html/sbr/vecque.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/vecque.h.html]]
#tbl2_td
C++. 内部でポインタのvectorで管理するdeque風vector.
#tbl2_th
[[mem1_allocator>http://www.6809.net/tenk/html/sbr/mem1_allocator.h.html]]
#tbl2_td
指定サイズのプールから固定サイズのメモリを取得するアロケータ.
(vecqueでの使用等)
#tbl2_th
[[a_vector>http://www.6809.net/tenk/html/sbr/a_vector.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/a_vector.h.html]]
#tbl2_td
C++. std::arrayのように class内部に固定メモリを持つ capacity 固定の vector クラス.
#tbl2_th
[[ya_array>http://www.6809.net/tenk/html/sbr/ya_array.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/ya_array.h.html]]
#tbl2_td
C++. ほぼ std::array そのもの. (設定で例外をassertに変更可).
#tbl2_th
[[ya_vector>http://www.6809.net/tenk/html/sbr/ya_vector.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/ya_vector.h.html]]~
#tbl2_td
C++. ほぼ std::vector そのもの. (設定で例外をassertに変更可).
#tbl2_th
[[ya_string>http://www.6809.net/tenk/html/sbr/ya_string.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/ya_string.h.html]]
#tbl2_td
C++. ほぼ std::string そのもの. (設定で例外をassertに変更可).
#tbl2_th
[[v_string>http://www.6809.net/tenk/html/sbr/v_string.zip]]
#tbl2_td
C++. vectorクラスを継承して、stringクラス化するアダプタ.
#tbl2_th
[[unitst>http://www.6809.net/tenk/html/sbr/unitst.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/unitst.h.html]]
#tbl2_td
我流な C++ unit test ルーチン.
[[このページ:雑記/2010-02-13]]に貼ってるけど一応リンク.
#tbl2_th
[[dbg>http://www.6809.net/tenk/html/sbr/dbg.zip]]~
[[(h)>http://www.6809.net/tenk/html/sbr/dbg.h.html]]
#tbl2_td
assert系デバッグマクロ関係.
#tbl2_th
[[MtRand>http://www.6809.net/tenk/html/prog/xorshiftrand/MtRand.h.html]]~
[[xorshift>http://www.6809.net/tenk/html/prog/xorshiftrand/XorShiftRand.h.html]]~
#tbl2_td
[[乱数ネタのページ:雑記/2010-01-26]]のサンプルを一応リンク.
#tbl2_th
[[quick_sort>http://www.6809.net/tenk/html/prog/sort5/quick_sort_kai.h.htm]]~
[[merge_sort>http://www.6809.net/tenk/html/prog/sort5/merge_sort.h.htm]]~
[[radix_sort>http://www.6809.net/tenk/html/prog/sort5/radix_sort.h.htm]]~
[[backet_sort>http://www.6809.net/tenk/html/prog/sort5/backet_sort.h.htm]]
#tbl2_td
[[ソートねたのページ:雑記/2010-01-11]]のサンプルを一応リンク.
テストルーチンや他のソートは[[そちら:雑記/2010-01-26]]を.
(※zipの中の quick_sort は修正前のものなので注意).
// #tbl2_th
// [[mclib>http://www.6809.net/tenk/html/sbr/mclib_000.zip]]
// #tbl2_td
// C標準ライブラリの一部(というか主に文字列関係のみ)を実装してみたもの.
// #tbl2_th
// [[StrmFmt>http://www.6809.net/tenk/sbr/strmfmt.zip]]
// #tbl2_td
// printf形式とストリーム<<式のあいのこのような文字列書式処理のサンプル.
// (<<型、printf型、boost::formatもどき)
// #tbl2_th
// [[ElapsedTime>http://www.6809.net/tenk/sbr/elapsedtime.zip]]
// #tbl2_td
// 開発中の複数のルーチンの時間計測を行うためのクラス. c++
// #tbl2_th
// [[str_misc>http://www.6809.net/tenk/sbr/str_misc.zip]]
// #tbl2_td
// c用の文字列の雑多なルーチン群.
// #tbl2_th
// [[string_misc>http://www.6809.net/tenk/sbr/string_misc.zip]]
// #tbl2_td
// TCHAR連動でstring/wstringをtstringとし、stringとCStringの使い型をある程度同様にするためのラッパー関数.
#tbl2_end
----