Tcl はスクリプト言語ですが、文字列処理、ファイル処理、文字コード変換、任意精度演算、時間/スレッド処理、ハッシュテーブル等の各種APIが充実しているので、純粋に C 言語用ライブラリとして活用することもできます。 ただ、C++から使う場合、Tcl の API は C 言語ベースでちょっとまどろっこしく感じるので、RAIIやオペレータオーバーロード等を活用してもっとサクサク扱えるように C++ 用の薄いラッパーを作成してみました。
今のところ、Tcl_DString をラップした文字列クラス(文字コード変換もサポート)、 Tcl_Obj から各タイプの値を取得して戻り値にする(値を取得→別の関数に入れるの流れが1行で書ける)オーバーロード関数、 リスト及びDictのラッパークラス、時間測定クラス、json をパースして Tcl_Obj に格納する関数が用意されています。
* ソース