タグ

ブックマーク / melpon.hatenadiary.org (3)

  • vector の話 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    vector は vector に対して特殊化されていて、領域を無駄にしないように、ビット単位で格納されるようになっています。 これは使用する領域が少なくなる反面、 &v[0]+i == &v[i] であるという、vector としての特徴の一つを満たさなくなってしまいます。 他にもいくつか、bool 以外の vector と異なる動作をする箇所があります。 そのため、Twitter掲示板等で vector の話が出るたびに必ずといっていいほど「あれは使うな。失敗作だ」とか「あれはもう忘れろ」という趣旨の発言が見られます。 そういった場面に遭遇するたびに自分は微妙な気分になります。 実際のところ、「大量のビットを格納したいけれどもメモリを無駄にしたくない」という状況がある*1とき、vector 以外の選択肢はどの程度あるんでしょうか? まず自分で作るという選択肢、これはほとんどの場合は

    vector の話 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
    nharuki
    nharuki 2017/10/26
    std::vector<bool>の注意点。注意点さえ把握していればどうという事はない
  • プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.1 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    ついに出ました。 株式会社ロングゲート 自分は「Chronoライブラリで考える型システム」という題で書かせて頂きました。 内容について どんな内容かというと、ChronoというC++0xで新しく入る時間ユーティリティを通じて、型システムがいかに素晴らしいかというのを語っています。6ページ弱しか無いので、サクッと読めると思います。 そもそもどうしてこのテーマにしたかというと、当初はChronoライブラリを解説する予定だったのですが、このライブラリの単位を型で表現するという方法が非常に素晴らしいので、このライブラリを例として、型について話すことしました。型について考える機会になればいいかなと思います。 ratio は万能じゃない id:bleis さんが 確かに、単位を汎用的に扱えるととても嬉しい。嬉しいんですが、ratio だけじゃ解決できない単位が身近にあるんですよね・・・*2 *2:あ、

    プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.1 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
  • プリプロセッサデバッガ - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    昨日のことを適当にまとめてみる。 始まりはこのつぶやきから。 【急募】このコードがうまく動く理由 http://codepad.org/IwJ4sqA9 http://twitter.com/DecimalBloat/status/9965596581 これを見て、そういえば id:y-hamigaki さんが Boost.Wave を使ってプリプロセス時デバッグする方法を書いていたことを思い出したので、実際に wave.exe を使ってみました。 wave.exe を使おう まず wave.exe がどこにあるかわからず苦戦。 調べてみると boost/tools/wave にあるみたいなので、そこからソースを持ってきて適当にビルド。 で、最初の頭のおかしいソースをコピペして、 #pragma wave trace(enable) をどこかに追加して、 wave.exe -S"C:\Pr

    プリプロセッサデバッガ - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
    nharuki
    nharuki 2010/07/29
    プリプロセッサこわい・・・
  • 1