Frequently used words (click to add to your profile)

javaandroidc++linuxc#objective-ccocoa誰得qtrubypythonbathyscaphephpgamewindowsguic翻訳omegattwitterframeworktestbtronarduinovb.net計画中(planning stage)directxpreviewerゲームエンジンdom

最近の作業部屋活動履歴

2020-02-26
2020-02-10
2020-02-09
2019-12-30

最近のWikiの更新 (Recent Changes)

2020-02-26
2020-02-10
2019-12-30
2019-04-30
2019-04-02

Wikiガイド(Guide)

サイドバー (Side Bar)

C++ から Tcl の機能を呼ぶための薄いラッパー Tcl Thin Wrapper for C++

概要

Tcl はスクリプト言語ですが、文字列処理、ファイル処理、文字コード変換、任意精度演算、時間/スレッド処理、ハッシュテーブル等の各種APIが充実しているので、純粋に C 言語用ライブラリとして活用することもできます。 もちろんC++からもライブラリとして使えるわけですが、Tcl の API は C 言語ベースなので、他の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 に置き換えた)

ダウンロード

* ソース