No Such Blog or Diary
昨日から連続作業中
- 2007-09-30 (Sun)
- 一般
昔書いたコードを書きなおしてるけど結構時間食うなぁ.24時間くらい続けてるけどまだ半分か.これから先の部分に山場があることを考えると頭が痛い…
- Comments: 0
- TrackBack (Close): -
ペリカンめぇ
- 2007-09-29 (Sat)
- 一般
人が少しコンビニに行って帰ってくる間に来ていたとは.もう遅いので受け取りは明日だな.
- Comments: 0
- TrackBack (Close): -
Let's note の冬モデルが発表されたようで
- 2007-09-28 (Fri)
- 一般
このモデルから W も 965 になったようなので買い替え確定.ついでにメモリも SO-DIMM 対応なので増設しやすい.でも,何故か W7B だけ発売日が一カ月遅れの 11月半ば… とりあえずどこで買うか悩むとしよう.生協で安く買えるといいなぁ.
- Comments: 0
- TrackBack (Close): -
SRM 367 DIV 1
- 2007-09-27 (Thu)
- プログラミング
またとちった.
250点問題:BigInteger で舜殺可能.
500点問題:よくあるDPだけど微妙に形を間違え… さらに事前のソート処理が必要なのをあとで思い出したが挿入位置を間違え… なんてやってたら時間無くなった.
1000点問題:DAGから枝を抜いてけばいいのだけどどうやって抜いていけばよいのやら?
- Comments: 0
- TrackBack (Close): -
g++ のインライン展開
どうやら g++ は varargs な関数を展開できないらしい.
#include <iostream> struct h {}; struct k : h {}; namespace g { inline bool f(...) { return false; } inline bool f(h* ) { return true; } } namespace v { template <typename A> inline bool f(A) { return false; } inline bool f(h* ) { return true; } } int main(int argc, char *argv[]) { h *ph; k *pk; int *pi; std::cout << g::f(pi) << std::endl; std::cout << g::f(ph) << std::endl; std::cout << g::f(pk) << std::endl; std::cout << v::f(pi) << std::endl; std::cout << v::f(ph) << std::endl; std::cout << v::f(pk) << std::endl; }
g::f(pi) は inline bool f(int* ) なので展開される.g::f(h()) は inline bool f(...) なので展開されない.他は全部展開.ついでに,(...) を使わずに単純にテンプレート変数を一つ用意すればいいかなと思ったけど(...)とテンプレートを用いた場合とでオーバーロードの解決優先度が違うのでだめらしい.
古いソースだとbool boost::detail::function::has_empty_targetはvarargsを使ってないのになぜ最近の実装では varargs を使うようになったのだろう?
- Comments: 0
- TrackBack (Close): -