ボレロ村上 - ENiyGmaA Code

中3女子です。

2010-01-01から1年間の記事一覧

焼き上がった。

今回はプログラミングとは関係ない記事。 良いものが焼き上がったので。 右手は顔面把手付深鉢。いわゆる女神像土器。元は縄文中期の傑作。 妊婦かわいいよ妊婦。 岡山の粘土は鉄分の含有量が多いためか、良い赤が出る。 一番下の写真が、たぶん肉眼で見た色…

Boost.Serialization の Singleton のワナ

Boost.Serialization はシリアライズ機能を提供するライブラリだが、 同時に strong-typedef や static-warning など非常に便利な小道具を用意している。 その中で boost::serialization::singleton クラステンプレートは、 有名な(悪名も)シングルトンパ…

吉里吉里でHMAC計算

Twitter API でBasic認証が廃止になり、OAuth 必須になるらしい。 OAuth がどんなものか知らないので調べてみたが、どうやら HMAC の計算が必要とのこと。 ということで、拙作の吉里吉里用ライブラリ KTL を使って、HMAC計算を実装してみた。 KTL の実践的な…

Boost.PropertyTree の安定ソート(2)

(続き) boost::property_tree::basic_ptree を安定ソートするにはどうすればよいか。 メンバ関数 basic_ptree::sort() や STL アルゴリズムなど、 ふつう考えられる方法ではおよそ難しいというのが、前回の話だった。 ようは同じキーの要素同士の比較にお…

Boost.PropertyTree の安定ソート(1)

#include <boost/property_tree/ptree.hpp> boost::property_tree::ptree ptree; ptree.sort(); 残念ながら、このコードはコンパイルできなかった(Boost 1.43 + VC9)。 というのも basic_ptree::sort() は、要素を実際に保持する multi_index_container::sort() を呼び出しているが、これが</boost/property_tree/ptree.hpp>…

URLエンコード

example/HTTPダウンロード http://www.boleros.x0.com/doc/ktlwiki/index.php?example%2FHTTP%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9 こいつにURLエンコードを実装しようかと思ったが、果たして文字コードは何で扱うべきか? ちょいと調べた限りでは、UTF-8が…

吉里吉里でBOM

bom_test.tjs var str = "\xFEFF吉里吉里"; Debug.message(str); // Console:吉里吉里 Debug.message(str.length); // Console:5 Debug.message(#str); // Console:65279 (== 0xFEFF) TJSからIStreamを使ってファイルに文字列を流し込むとき、BOMをどうすれ…

KTL(吉里吉里用ライブラリ)

公開しました。 http://www.boleros.x0.com/ 案の定「どれが何の機能かわかんねーよ!」という声があったので、 よく使われそうなものから細々とドキュメント書いていきます。 HTML書くのが面倒なのでPukiWikiで書くことにしました。

Boost.Asio 勉強中

ループバックアドレス使って一人チャットしてみた。 さしあたっての目標は、TJS(吉里吉里)から使える ネットワーク送受信プラグインの作成。 ネットワークプログラミングどころか、 マルチスレッドを実戦で扱うこと自体初めてなので 勉強あるのみ。

boost/property_tree/ini_parser.hpp

Boost.PropertyTree にはINIパーサがある。 foo { a aaa b bbb } bar { c ccc } このような木構造を書出すと、 [foo] a=aaa b=bbb [bar] c=cccのように出力される。 もちろん、読込はこの逆になる。 foo { a aaa b bbb bar { c ccc } } このような木構造は、…

boost::mpl::string と boost::mpl::c_str

boost::mpl::string は、現状 char にしか対応していない。 typedef boost::mpl::string<L'f', L'o', L'o', L'あ', L'あ', L'あ'>::type foo; sprig::cout_section_line("foo", boost::mpl::c_str<foo>::value); // <foo>foo0B0B0B</foo>どうやらワイド文字リテラルは、multi-character literal('foo'←こういうの)</foo></l'f',>…

TJSについて はじめに

TJSとは >W.Deeさんが開発したスクリプト言語。オブジェクト指向。 >ゲームエンジン「吉里吉里」で使用されているが、ライセンスを満たせば組み込み可能。公式ページは以下。 http://kikyou.info/tvp/TJS2 リファレンスは以下。 http://devdoc.kikyou.info…

吉里吉里とTJS

そういえば吉里吉里とTJSについて何も書いていなかった。 1/31まで忙しいので、それが過ぎたらちょこちょこと書いていこう。

linearize.hpp

ふと思い立ったので書いてみた。 ネストされたMPLのシーケンスを、 一つのシーケンスに直線化(?)するメタ関数。 linearize.hpp #ifndef SPRIG_TMP_LINEARIZE_HPP #define SPRIG_TMP_LINEARIZE_HPP #include <sprig/config/config.hpp> #ifdef SPRIG_USING_PRAGMA_ONCE # pragma onc</sprig/config/config.hpp>…

boost::call_traitsを使った最適化 その2

ベンチをとってみた。Visual C++ 2008 Express SP1 構成:Release (最適化=実行速度(/O2)) Windows XP SP3 3.00GHz、3.25GB RAM CallTraitsTest.cpp #pragma warning(disable : 4819) #include <cstdio> #include <iostream> #include <boost/array.hpp> #include <boost/foreach.hpp> #include <boost/format.hpp> #include </boost/format.hpp></boost/foreach.hpp></boost/array.hpp></iostream></cstdio>

boost::call_traitsを使った最適化

boost::call_traits::param_typeは、Tが(constな)引数にとられるとき const参照渡しにすべきか、値渡しにすべきか決定してくれます。 以下のように使う。 #include <boost/call_traits.hpp> template<typename T> class foo { public: typedef typename boost::call_traits<T>::param_type param_</t></typename></boost/call_traits.hpp>…

test-pred_warning.cpp

↓は2chのBoostスレでの自分の書き込みです。 http://pc12.2ch.net/test/read.cgi/tech/1251446016/373 のBOOST_STATIC_WARNINGは、 クラステンプレートの中で働かなかったりとか、いろいろあります。 そういった条件もいまいちわからない。 まあ、もともとテ…

test-has_member_xxx.cpp

Boost.MPLにはhas_xxxという、クラスが特定のメンバ型を持つか 判定するメタ関数(を定義するマクロ)があります。 使い方や実装テクニックは、↓で詳しく解説されています。 http://cpplover.blogspot.com/2008/10/hasxxx.html 上記ブログでは、型だけでなく…

hello_world.cpp

C++大好きです。Boost大好きです。趣味グラマです。 アプリケーションよりライブラリつくっているのが楽しいです。 俺ライブラリはなる名前でまとめています。 hello_world.cpp #include <sprig/cindent.hpp> int main(int argc, char* argv[]) { // Hello, world! sprig::csect</sprig/cindent.hpp>…