= C++ から Tcl の機能を呼ぶための薄いラッパー Tcl Thin Wrapper for C++ == 概要 Tcl はスクリプト言語ですが、文字列処理、ファイル処理、文字コード変換、任意精度演算、時間/スレッド処理、ハッシュテーブル等の各種APIが充実しているので、純粋に C 言語用ライブラリとして活用することもできます。 ただ、C++から使う場合、Tcl の API は C 言語ベースでちょっとまどろっこしく感じるので、RAIIやオペレータオーバーロード等を活用してもっとサクサク扱えるように C++ 用の薄いラッパーを作成してみました。 今のところ、Tcl_DString をラップした文字列クラス(文字コード変換もサポート)、 Tcl_Obj から各タイプの値を取得して戻り値にする(値を取得→別の関数に入れるの流れが1行で書ける)オーバーロード関数、 リスト及びDictのラッパークラス、時間測定クラス、json と Tcl_Obj を相互変換する関数が用意されています。 == ライセンス * Boost License Version 1.0 と一部 MIT (json処理の部分) == 変更履歴 * 2017/01/23 : version 1.0 初版 * 2017/01/29 : version 1.1 リストのラッパークラス(TTW_ListObj)の追加 * 2017/06/05 : version 1.1.1 Tcl_Obj から値を取得する関数群の仕様変更(型変換に失敗する場合は、引数で指定したデフォルト値を返すように変更) * 2017/06/25 : version 1.2 (1) TTW_ListObj 仕様変更: 参照カウンタの扱い方の改善、Move 廃止、Borrow 追加、Eval 追加 (2) UTF-8 文字列 split オペレータの追加 * 2017/06/25 : version 1.3 (1) TTW_ListObj Push オーバーロード追加、Setメソッド(指定インデックス要素の書き換え)追加 (2) TTW_LapTimeWatch (時間測定クラス)追加 * 2018/06/24 : version 1.4c (1) TTW_DictObj 追加 (2) jsonをパースして Tcl_Obj に格納する処理、及びTcl_Objをjsonとして出力する処理の追加 (Jansson の json_t を Tcl_Obj に置き換えた) == ダウンロード * [/downloads/users/21/21813/TTW_1_04c.zip ソース]