• Showing Page History #110475
  • Showing Page History #110482
  • Showing Page History #110447

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

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 に置き換えた)

ダウンロード

* ソース