toge's diary

コンピュータ関連の趣味をつらつらと。

C++

既存のPDFをPoDoFoで変換

C++

ふとしたことでそこらへんに転がっているPDFを加工したいことがあります。 PDFを生成するライブラリではなくて、PDFのパーザが必要になるのですがC++でやるには何がいいんですかね〜。今回は、ざっと探して最初に見つかったPoDoFoを使おうと思ってます。 PoD…

最近のC++に追い付こうと思います

C++で書きなぐるがの楽しかったのですが、そろそろ限界を感じてきたので、C++14とかをちゃんと勉強しようと思ってます。 私はC++98の知識しかないので、ここ2、3年のドラスティックな変化に全然対応できないと痛感してます。ひとまず以下をサクっと読んで文…

シンプルな構成のC++のHTTPクライアントライブラリは無いものか

C++

「libcurl使えば一発じゃん」と言われればそれまでなのですが、 C++界隈の一部ではheader only libraryが大人気なわけです。Boostやfollyみたいなガチなものから、もっとホビーなものまで沢山あるのに、 案外無いのがHTTPクライアント。 C++バリバリな方々は…

OpenGL3.xを使うためにどうすれば・・・

もう時代はOpenGL4.0だというのに、OpenGL3.x系に対応したライブラリの少ないことよ。新規のOpenGLプログラムを作るときにせっかくなのでOpenGL3.2で作ろうと思うのです。 ところがマルチプラットフォームでOpenGL3.xを使おうとすると、選択肢が殆どなくなっ…

gcc4.5 RC

C++

公開されてますね。 早速ビルドしようとしたら、ご覧のありさま。 checking for the correct version of gmp.h... buggy but acceptable checking for the correct version of mpfr.h... buggy but acceptable checking for the correct version of mpc.h...…

gcc 4.5はまだ先か

C++

[Phoronix] GCC 4.5 Is Still Not Ready For Releaseうーん、gcc 4.5はまだ先か。Ubuntu 10.04にはgcc 4.5は入らなさそうだな。自分で4.5の野良ビルドすることにするか。

aggの勝手ががらっと変わってるな

C++

http://www.antigrain.com/news/index.htmlAnti-Grain Geometryの仕様が2002年ごろとだいぶ変わってるな。 おかげで公式サイトのサンプルも一部動かないし。開発が2007年で止まっているし、その頃ってC++的に激動の時代だったので、何が正しいかの切り分けが…

GCC 4.5.0の足音

C++

http://www.phoronix.com/scan.php?page=news_item&px=Nzc2MQうん、そろそろGCC 4.5.0ですな。ltoがどれくらい最適化に貢献するのか楽しみです。毎週ビルドするのを再開しようかな・・・。コンパイルするものがないけど。

MK script languageっていうのを見つけた

C++

http://mk-script.sourceforge.jp/なんでだか分かんないけどたまたま見つけました。そしてコンパイルしようとして見事にハマり中。 lexer->stream.current = lexer->stream.getc(lexer->stream.stream ); こんな簡単なコードが通らないので何事と思ってプリ…

gcc vs llvmのベンチマーク

C++

http://vmakarov.fedorapeople.org/spec/面白い。こんなのが常に更新されているとは・・・。とりあえずgcc -O3だとllvmにもほぼ全項目で勝っているので安心しました。 ここにiccとかVisual C++が入ってくるとボロ負けだし、どんぐりの背比べなんだろうけどね…

mongoose ほどほど最小サンプル

C++

以前話したmongooseをやっとこさ弄りはじめました。 触っていると分かりますが、小さいけれど必要十分の事ができる素敵ライブラリです。で、公式のソースだとmain.cは色々やりすぎだし、test/embed.cは色々はしょりすぎなので、中庸的なソースコードを作って…

文字コード変換に完全ハッシュ関数を使う

C++

帰りの電車の中でふっとこんなことが頭に浮かんだ。 なぜ完全ハッシュ関数なんて数年来使ってない単語が出てきたのかまったく謎だ。で、ちょっと調べてみたら、そんなの常識らしい。iconvはgperfを使っているし、こんな日記を書いている方も居た。http://cvs…

gcc 4.4.1は6月末か

C++

Mark Mitchell - GCC 4.4.1 Status Report (2009-05-05)なるへそ、4.4.1は6/21ね。まあその通り出たためしないから、6月末から7月中旬ぐらいかね。 そういや4.5.0の開発が進んでるけど、そろそろ利用価値ないように思うのでlibgcjあたりは外してほしいと思う…

luaで設定ファイルは最強です

C++

まったくそのとおりの考え方をしていて、実際に使いまくっています。 その例: reflect.lua - reflectblade - シンプルなボートレースゲーム - Google Project HostingLuaConstants.cpp - reflectblade - シンプルなボートレースゲーム - Google Project Hos…

boost 1.39リリース

C++

Version 1.39.01.38の新機能を1回もいじらないうちに1.39が出てしまった。 まあ、今回の更新は私的には小さなものなので、まだ追従可能かな?

RapidXMLをBOOST_FOREACHに対応させる

C++

RapidXMLのノードをBOOST_FOREACHをつかってループする - :set titlestring=秀丸RapidXMLをさわりながら「いつかやらなきゃなぁ」と思っていたことを、さくっと実現されていたので、使わせてもらいます。m(__)m

gcc4.4 リリース直前

C++

http://gcc.gnu.org/ml/gcc/2009-04/msg00406.html If nothing serious is reported, I'd like to release 4.4.0 next week. ということでいよいよ来週にはgcc 4.4.0が出るらしいぞ。 もうrc1も出てるしね。速く広まるといいなぁ。

shttpd→mongoose

C++

2005-12-12 - togeの日記3年以上前にとりあげてくだらんプログラムで使い潰したshttpdですが、プロジェクト名をmongooseに代えて生き残っていました。SHTTPD - an embeddable Web server mongoose - Mongoose - easy to use web server - Google Project Hos…

SDL 1.3お試し

C++

http://www.libsdl.org/tmp/SDL-1.3.zipちょっと耐えられなくなってSDL 1.3を入れてみた。 おおっ既存のコードと互換性を保ちながら複数Windowに対応してるんですけどっ。 ついでにOpenGL, OpenGL ESにも対応しているっぽいんですけどっ。リリースはまだ先み…

gccはそんなに悪い子じゃないよっ

C++

gcc vs MSVCこういう記事があると脊髄反射で検証してしまうダメな私です。さてVisualC++は全然興味が無いし、おそらく最適化オプション調整すればもっと速いコードが出てくるはずなので「Visual C++より速いとか遅いとか」で一喜一憂する気はありません。な…

TDM's GCC/mingw32 Builds

C++

昨日のMinGW cross compiling environment経由で知りました。MinGWのgccがいつまでたっても3.x系なのに痺れを切らしている人は多いはず。 そんな人のためのプロジェクトです。昔はご丁寧に"experimentation"なんて言葉を使っていたみたいですが、今では"hear…

Graphiteが何をやるのか?が書いてあった

C++

http://gcc.gnu.org/gcc-4.4/changes.html知らないうちにchangesにGraphiteが何をやってくれるのか書いてくれてますね。 簡単に言えば単純なループを、メモリアクセスとか並列性を確保するために、変形しちゃえってものらしい。ここらへんの機能がSIMDな命令…

MinGW cross compiling environment再び

C++

去年11月に取り上げたMinGW cross compiling environmentが2.0から2.3にバージョンアップしていた。色々変わってますな。一通りビルドされるものの差とか出してみますか。 追加 boost 1.37 bzip2 1.05 gcc gmp 4.2.4 gcc mpfr 2.3.2 バージョンアップ curl 7…

boost 1.38か

C++

なんかひっそり公開されてますね。 私の視界ではあんまり触れている人をみかけないな。すぐにも使えそうなScopeExitとSwapと、新しいプロジェクトじゃないと大変なことになりそうなflyweightが追加されてますな。・・・っていうか1.37で追加されたライブラリ…

TinyXML++

C++

http://code.google.com/p/ticpp/TinyXMLの後継らしい。 インターフェースの互換性をあえて捨てて、templateを使った使い易いインターフェースにこだわったみたいだ。確かにチュートリアル読む限り使いやすくなっているように見える。速さ的にはRapidXMLには…

printfを使わずに実数を表示する

C++

printf("%f")より速くしようと思ってざっと作ったら、返ってprintfより遅かった。 std::stringなんか使っちゃ行かんのだな。printfの実装を参考にしよう。(それすらやってないんかいっ!)

RapidXMLで辛い点

C++

ちょっとづつ使っているとライブラリの得手不得手が分かるものですね。RapidXMLの場合に私が困るのは次の2点かなぁ。まあ、速度と使いやすさにおいて補って余りある特徴があるから、今の所は困らないけど。 エラー発生場所が分からない 一度メモリに読み込…

gcc 4.4.0の足音

C++

http://gcc.gnu.org/ml/gcc/2009-01/msg00610.html http://gcc.gnu.org/ml/gcc/2009-01/msg00616.htmlとうとうgcc 4.4のbranchが切られるようだ。「FSF、GCCにプラグインアーキテクチャを認めるライセンス除外規定最新版」の動きも含めてリリースするみたい…

iostream使って速くファイルサイズを読み込む

C++

なんか、世の中にはrdb->in_avail()は正しいサイズを返さないって話もあるみたいだが、Linux上のgccでは3.4.6以降どれで別に問題なく使えてる。この部分に関しては、C言語よりC++の方が使っていて楽ですな. // open file const char* filename = argv[1]; st…

RapidXML 触ってみる2

C++

うぬ、rapidxml.hppと一緒に提供されているrapidxml_utils.hppを使えばもっと簡単に書けたみたい。 #include <iostream> #include "rapidxml_utils.hpp" int main(int argc, char* argv[]) { // check parameter if (argc < 2) { std::cerr << "usage : " << argv[0] <</iostream>…