boost

簡易版 Boost.Xpressive、Boost.Spirit の正規表現対応表

以前、Boost.Xpressive と Boost.Spirit の速度比べをした際にちょっと調べたのでまとめておこう。 この書き方しかないわけではないので、もっと実行効率のいいルールを探すのもいいかもね。 ただ、Boost.Spirit は網羅的なマッチングをしないので要注意*1。…

Boost.XpressiveとBoost.Spiritの速度比べ

ちょっとした構文解析なら Xpressive でも充分だけど、ちゃんとした(?)構文解析器の Spirit と比べてどれだけ性能の差があるのか調べてみた。 どうせ比較するなら実用的なもので、というわけで RFC 2616 やらを参考に HTTP のリクエストヘッダをパースさせて…

boost::xpressiveのrangeでハマる

boost::xpressiveを使って「コントロール文字を除いたUS-ASCII文字(0x20〜0x7e)」以外か判定しようとしたら、かなり恥ずかしい間違いをしたのでメモ。 元々次のような正規表現で判定をしようと思っていた。 #include <iostream> #include <boost/xpressive/xpressive.hpp> int main() { using namespac</boost/xpressive/xpressive.hpp></iostream>…

boost::units を少し使いやすくする

boost::unitsを使う場合、下記のようになる。 #include <boost/untis/systems/si.hpp> #include <boost/units/systems/prefixes.hpp> using namespace boost::units; quantity<si::time> x(1.0*si::second); // 1 s quantity<si::time> y(1.0*si::milli*si::meter); // 0.001 s この書き方にはいくつか気になる点がある。 まず、quantityで使って</si::time></si::time></boost/units/systems/prefixes.hpp></boost/untis/systems/si.hpp>…