boost

boost.pythonでC++からpythonの関数オブジェクトをコールする。

boost.pythonのFAQにはこんなの http://www.boost.org/doc/libs/1_41_0/libs/python/doc/v2/faq.html#funcptr が載っているがそりゃ無理だろうとw そうじゃなくて、普通にpythonのオブジェクトを取り出してコールする方法について。 #include <boost/python.hpp> #include <iostream> vo</iostream></boost/python.hpp>…

TinyJSONを改造してみた

{ // comment key: 99, HOGE: /* comment */ "FUGA" } というような2種類のコメントとクォートされていないkeyを許すように緩めた。 JSONの純粋性は損なわれたが実用性重視で。以下改造 diff --git a/include/tinyjson/tinyjson.hpp b/include/tinyjson/tiny…

データ構造を模索

UniformGridににいろんな種類の形状を突っ込む方法を模索中。 インターフェースとしてはこんなのがあって、 Shape { result intersect(const Ray &ray); }; 具体的には、TriangleとSphereを格納したい。 ゆくゆくは無限平面とか曲面とかintersect関数が定義…

std::maxのbindの仕方

手間取ったのでメモ。 普通に書いた方が早いし見やすいのだがこうなったら無理してでも使う。 手段が目的になる典型的なw namespace lmd=boost::lambda; lmd::bind( static_cast<const int&(*)(const int&, const int&)>(&std::max), 1, lmd::_1 );</const>

boostのユニットテストはstaticリンクする

gentooにboost-1.37.0をソースからインストールしたのだがunit testがリンクできない事態に遭遇。 /usr/lib/gcc/i686-pc-linux-gnu/4.3.2/../../../crt1.o: In function `_start': (.text+0x18): undefined reference to `main' collect2: ld returned 1 exi…

GILの練習

GILの練習に、勉強中のboostをできるだけ濫用したサンプルを作ってみた。 しかし、GILの学習曲線はまるで地を這うようだ。 白い画像を生成してから、 乱数で座標を生成して点を打ちます。 #include <iostream> #include <boost/random.hpp> #include <boost/gil/gil_all.hpp> #include <boost/gil/extension/io/bmp_dynamic_io.hpp> #include <boost/timer.hpp> #include <boost/lexical_cast.hpp> #inc</boost/lexical_cast.hpp></boost/timer.hpp></boost/gil/extension/io/bmp_dynamic_io.hpp></boost/gil/gil_all.hpp></boost/random.hpp></iostream>…

Boost.Pythonをやってみた

http://boost.cppll.jp/BDTJ_1_29/libs/python/doc/tutorial/doc/building_hello_world.html をやってみた。 環境はWindowsXP VC8(ExpressEdtion) boost-1.37.0に添付されているサンプルはそのままでは動かず結構苦労した。 過去のバージョンが放置されてい…