ボレロ村上 - ENiyGmaA Code

中3女子です。

Sprout.String - constexpr 文字列クラス

Sprout.String - constexpr 文字列クラス

Sprout.String - constexpr 文字列クラス sprout/string.hpp Github https://github.com/bolero-MURAKAMI/Sprout/blob/master/sprout/string.hppSprout.String は、constexpr で使える(固定長)文字列クラスを提供します。 モチベーション constexpr の規格…

Boost.Random にバグレポート投げた。

Boost.Random は Boost 1.47 での更新で、C++0x の の仕様に合わせたりするのため、 Boost 1.46.1 からかなりの手が入っています。変更には、いくつかの下位互換性の問題を含む(しかし避けられない)ものもあります。 変更点の詳細は以下で見られます。boos…

土器が焼きあがった

といっても、先月の4月16日のことになるので、書くのがずいぶん遅くなった。 詳細や野焼き中の写真は、下記のページに載っています。 春の縄文野焼き祭り(平成23年度) | イベント情報 | 猪風来美術館 http://www.ifurai.jp/event/kako/haru_noyaki_h2…

O(n) 〜 O(1) のオーダーで Boost.Fusion のシーケンスの N 番目の要素の型を得る

通常、あるシーケンスの N 番目の要素の型を得るには、以下のようにする。 boost::fusion::result_of::value_at<Seq, N>::type fusion::result_of::value_at および fusion::result_of::value_at_c は、Forward Sequence を要求する。 すなわち fusion::list や、Ran</seq,>…

qi::int_parser,qi::uint_parser の使いかた

Spirit.Qi には、qi::int_ や qi::uint_ といった、に数値文字列にマッチするプリミティブパーサが用意されている。 これらの Attribute は int や unsigned である。 もし short や unsigned short の Attribute を用いたければ、qi::short_ や qi::ushort_…

Boost.Spirit.Qi によるコードからみる雑多な解説

Spirit.Qi は Boost の構文解析ライブラリである。 演算子オーバーロードにより、EBNF 記法に近い書き方で、C++ のコードとして構文定義を書くことができる。 Spirit V2 からは、Boost.Fusion のタプル等と強力な連携がなされ、 解析結果をタプルやコンテナ…

Boost にバグレポート投げた。

先日より書いていた Boost のバグレポートについて、New Ticket を投稿しました。 何だかんだで間が開きましたが。 Ticket #5280 と Ticket #5281 がそれです。 Ticket #5280 https://svn.boost.org/trac/boost/ticket/5280 compilation error by including …

吉里吉里で様々な乱数と確率分布を使う - ktl/VariateRandom.tjs

乱数を扱う吉里吉里用のネイティブプラグインを書いた。 ところで吉里吉里(TJS2)には、組み込みで Math.RandomGenerator クラスという疑似乱数生成クラスがある。 Math.RandomGenerator クラス http://devdoc.kikyou.info/tvp/docs/tjs2doc/contents/rando…

大型の土器。

高さ60㎝近い大型の土器。 冠部の5つの突起が特徴的である。 火焔土器をはじめ多くの縄文土器は2ないし4つの突起を持ち、 このように多数で奇数個の突起をもつものは珍しい。 制作上のポイントはやはり大きくせり出した突起であり、 火焔土器の場合突起を…

バグレポートの英文とパッチ

件の Boost.Wave と Boost.PropertyTree のバグについて、新しい Ticket を投稿すべく、英文とパッチを書いてみた。 何しろ英語力が(ry なので、相当酷いです。 パッチについては、正しく動作することは一応確認しておりますが、こんな感じで良いものかどう…

Boost にバグ報告を投げたい

先日の記事でも書いたが、Boost 1.46.0 現在でも修正されていない小さなバグが2つある。 ライブラリは Boost.Wave と Boost.PropertyTree である。 Tickets を検索してみた限りでは、同じような報告は見つからなかった。 この2つのバグについて、僕は新し…

【1.46.0】【fusion】 fusion compare is broken

Boost 1.46.0 で、Boost.Fusion がコンパイルできないバグがあった。 これは、VC8 と VC7.1 のために書かれたコードの問題である。 当該ヘッダは で、 detail::is_native_fusion_sequence が使われているが、これは traits::is_native_fusion_sequence の誤…

enable_switch - 複数の重複しうるコンパイル時条件で、SFINAE によるオーバーロードを書くには

久々にプログラミングの記事を。 boost::enable_if メタ関数 (C++0x なら std::enable_if)は非常に重要なユーティリティである。 SFINAE によって、関数テンプレートやクラステンプレートの、コンパイル時条件によるオーバーロードを行う。 メタプログラミ…

祭器。

磨き上がったもの。 大きな高台が特徴の祭器である。 ざっくりとしていながら、円熟した造形力を感じさせる文様。 これを綺麗綺麗にやってしまうと勢いが出ない。 つくる上ではそこが難しかった。 おそらく、元は熟練の縄文人の手によるものだろう。

火焔土器ふたたび。

制作期間約8日。高さ50センチ超。 堂々たる風格だと思う。

火焔土器。

横から。 やや上方から。 制作期間約6日。高さ38センチ。 火焔土器の中では小振りなほうだが、反面、上部の鶏冠状突起の大きさは 国宝指定されている最大級のものに近い大きさがある。 全体を覆う文様は線刻文のように見えて、実際には紐づけで土を盛ってか…

正月のつくり初め。

火焔土器制作に向けての肩慣らしでもある。

去年末につくった焼物

現在乾燥中。 春の野焼き祭りで焼く予定。 本当は結構前に焼かれたものだけど、穴窯の実験で焼いた陶器類。 よく考えたらこのウサギの置物を年賀状にでもすればよかったか。

焼き上がった。

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

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',>…