2009-09-01から1ヶ月間の記事一覧

テンプレート関数のオーバーロード解決とSFINAE

C++

自作のライブラリを書いていて、SFINAE(Substitution failure is not an error)の詳細が知りたくなった。仕様書を読んだので以下にメモ。 テンプレート関数のオーバーロード解決規則 あるテンプレート関数の呼び出しに対して、オーバーロードされた関数の…

C++でURLエンコード/パーセントエンコード

ネットで見つけたものがうまく動かなかったから自分で書いた。space_to_plusをtrueにするとスペースが(%20ではなく)+記号になるようにした。 #include <string> #include <sstream> #include <iomanip> std::string url_encode(const std::string& str, bool space_to_plus = false) </iomanip></sstream></string>…

CMakeのビルド構成の設定

C++

Makefileを書くのが面倒になったので、CMakeを使ってみた。 デバッグモードやリリースモードのようなコンパイルのモードを指定できないか調べたところ、CMakeLists.txtに set(CMAKE_CXX_FLAGS "") set(CMAKE_CXX_FLAGS_DEBUG "-g -pg") set(CMAKE_CXX_FLAGS_…

gccのプリコンパイル済みヘッダ

C++

昨日の続き。gccのプリコンパイル済みヘッダ(PCH)がかなり速いことに気づいたけど、日本語の資料が少ないので本家のマニュアルを読んだ。結構複雑だったから下にメモしておく。 作り方 foo.hのプリコンパイル済みヘッダを作る場合、普通にコンパイルするよ…

ビルド時間の短縮

C++

Boostは便利だけど、ちょっと使っただけでビルド時間が一気に長くなってしまうので、何とかならないか調べてみた。まず、最近のgccではプリコンパイル済みヘッダ(PCH)が使えるらしい。しかし、ヘッダをプリコンパイルしたときのオプションが本番のコンパイ…

ブラウザとOSの境界

今現在、ウェブサイトがブラウザを通してPCにプログラムをインストールしようとするのはかなり嫌われている。 Flashやjavascriptはあるけど、もっとマシンパワーの要る計算を(サーバでなく)クライアントにさせたいというニーズは確実にあるはず。SELinuxみ…

ICFP 2009 Programming Contest

C++

結果が出たようです。 http://icfpcontest.org/scoreboard.php 私(C--)は111位でした。VMの実装に手間取ったことと、「入力を行うプログラムを書く→実行する→プログラムを修正する」のサイクルに時間をとられたのが失敗かなぁ。シミュレーションなので実行…

ニコニコ動画検索システム

以前から、ニコニコ動画をニコニコ動画APIでクロールして、面白い動画を探そうというのをしていました。サイト→Mylist per Comment基本的にはとにかくデータを集めてきて、そこからコメントに対してマイリストが多くついてるような動画を表示しています。あ…