2017-11-01から1ヶ月間の記事一覧

apt-get upgradeでfishが大量のエラーを吐くようになった

ま た か (bobthefishでstring関係のエラーが出た - in neuro) 軽い気持ちでapt-get update && apt-get upgradeしたところ、fishが2.7.0になった。その後、argparseがないとかなんとかのエラーが出る。 bobthefishが内部で使っているコマンドなのでテーマ…

std::hash<integral_type>

C++

ふと、std::hash<std::size_t>の実装がどうなっているか気になった。 ハッシュ関数は、何かの型の値を整数型に変換する。特にstd::hashはsize_tに変換する関数である。同じ値に対しては同じハッシュ値を返し、別の値同士が同じハッシュ値を取らないようにする。一般にはハ</std::size_t>…

boost::enable_ifの居所について

C++

C++11のstd::enable_ifが使えない環境だと、boost::enable_ifなしにはテンプレート関数をガンガン使っていくのは厳しい。しかし、boost::enable_ifは途中で定義されている場所が変わっている。 boost 1.65.1のドキュメントを見てみよう。 Boost Utility Libr…

謎の演算子

C++

よく知られたネタだと思うが、while文中でカウントダウンするための演算子がある。 int N = 10; while(N --> 0) { std::cout << N << ' '; } 9 8 7 6 5 4 3 2 1 0 逆方向もあるが、カウントダウン演算子にもインクリメント・デクリメントの前置・後置と同様…

動的メモリ確保なしで派生クラスを格納できるクラスを作った

久方ぶりにdomain-specificでないコードを書いた気がする。 Qiitaに基本的なアイデアだけ書いたので、こちらでは少し立ち入った話をする。 tl;dr 先に最大サイズを決めておくことで、そのサイズ以下のオブジェクトを格納できるクラスを作った。 格納できるク…