2011-07-01から1ヶ月間の記事一覧

GCC Git Mirror における weekly snapshot の ID ( 20110726 〜 20110730 )

リポジトリ: http://gcc.gnu.org/git/?p=gcc.git gcc-4.4-20110726 5fc366e94a5711c44433e5a6e52bf41696f706c0 gcc-4.5-20110728 616ae7f6a504a650129ead7c3b7178f2fb342b73 gcc-4.6-20110729 2ba3c96e89b49f66eb6ff16428dc31e1d9eb7632 gcc-4.7-20110730 a…

Boost.Bind の protect 相当の関数を C++0x の に用意する

元ネタ: http://d.hatena.ne.jp/Flast/20110728/1311878870 (std|boost)::bind の結果を (std|boost)::bind に渡すと,特別扱いして関数合成を行ってくれるんだけど,それ邪魔な時があるよね. boost::bind には protect があるけど, std::bind で同様のこ…

配列の make_shared

C++0x の std::shared_ptr を使う場合は, std::make_shared を使うことによって,普通にポインタを new する場合より効率が良く,また安全なコードが書けます: int main() { auto p = std::make_shared<std::string>( "hoge" ); // std::shared_ptr<std::string> p( new std::string(</std::string></std::string>…

GCC Git ミラーの Release に tag を打つ

GCC 公式の Git ミラー http://gcc.gnu.org/git/?p=gcc.git は, Release に対して tag が打たれていません. で,それは不便なので, Release に対して tag を打つ方法を紹介します. やり方は簡単で,適当な branch ( origin/gcc-4_6-branch 等)に対し,…

Perfect Forward を行ってくれるマクロ

C++0x の Perfect Forward は,便利なのですが,イチイチ変数の型名を指定しなきゃいけないのが面倒です: #include <utility> template< class T, class U > auto add( T && x, U && y ) -> decltype( std::forward<T>(x) + std::forward<U>(y) ) { return std::forward<T>(x)</t></u></t></utility>…

constexpr な boost::addable

元ネタ: http://d.hatena.ne.jp/nagoya313/20110718/1311002272 * * * なにジョジョ? operator+= から operator+ を生成すると constexpr にできない? ジョジョ それは operator+= を使うからだよ __.. -―─ 、__ /` 三ミー ヘ、_ ゝ' ;; ,, , ,, ミミ , …

Boost の Release 版のみを Git リポジトリから持ってくる

Boost のバージョンが上がる度に,毎回 手動でファイルをダウンロードするのは,少し面倒ですよね. そういう場合には, Git リポジトリを使うのが便利ですが,単に git clone git://github.com/ryppl/boost-svn.gitとした場合,開発版も全部一緒にダウンロ…