Show page source of TTW #110446

=  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/20 : version 1.4b (改修中)
  (1)  TTW_DictObj 追加
  (2)  jsonをパースして Tcl_Obj に格納する処理の追加 (Jansson の json_t を Tcl_Obj に置き換えた)
== ダウンロード
* [/downloads/users/21/21804/TTW_1_04b.zip ソース]