8月 052012
 

久しぶりにC++ネタ。JSONを生成するプログラムをC++で書こうなんて人がそもそもいない気もするが、boost::property_tree::write_json()を使うと簡単にJSON出力ができる。

#include <iostream>
#include <sstream>
#include <boost/property_tree/json_parser.hpp>
using namespace std;

int main(int argc, char *argv[])
{
	if(argc < 2)
	{
		cerr << "Usage: " << argv[0] << " message" << endl;
		return 1;
	}

	boost::property_tree::ptree pt;
	pt.put("message", argv[1]);
	boost::property_tree::write_json(cout, pt, false);
	return 0;
}

Continue reading »

1月 222012
 

64ビット版Fedora14にboost-1.48.0の32ビット版バイナリをインストールしようとしたら、結構手こずってしまったので忘れないようにメモ。RPMがあればyumでインストールしてしまいたいが、あいにくFedora14のRPMリポジトリはboost-1.44.0以降、更新される気配がなくなってしまったので(本エントリ執筆時点でFedora16はboost-1.47.0まで公開されていた)、自前でビルドせざるを得なくなった。開発マシンが32ビット環境から64ビット環境に変わっても、32ビット版のモジュールをコンパイルすることはまだあるので、64ビット環境でも32ビット版を一緒にコンパイルできた方がずっと楽だ。

まず64ビット版のboostをビルドするには、Boost Getting Started on Unix Variantsの手順に従えばなんなくビルドできるのだが、バージョンアップを考慮してインストール先のディレクトリをデフォルトから変更してビルドする。

Continue reading »