2010-01-01から1年間の記事一覧
動機: C++ で Haskell の Either っぽい何かを作ってみた。 - 野良C++erの雑記帳 せっかく Either 作ったんだから Maybe モナドも作ろうぜ、という話。 まず Boost には、既に Maybe に相当する Boost.Optional が存在するので、 そいつをモナドの >>= に対…
boost::optional<int> const x = 42; // boost::optional<double> const y = x; // NG. optional<T> から optional<U> への変換は explicit boost::optional<double> y; y = x; // OK. optional<T> から optional<U> への代入は許されている // boost::optional<double> const z = boost::make_optiona</double></u></t></double></u></t></double></int>…
動機: boost::optionalだけじゃなくboost::eitherがほしい - Faith and Brave - C++で遊ぼう Boost.Optional は C++ でも屈指の便利ライブラリですが、 「戻り値として使う」場合には、時々「失敗した」という状況の他に、失敗した状況を示すような値が返せ…
第四回 カーネル/VM探検隊 : ATND kernel/vm 勉強会 - Togetter 今日は @syuu1228 さん主催の勉強会/懇親会に参加してきました。 僕はどちらかと言うと C++ という『言語』よりの人間ですが、 C++ という言語の性質上、カーネルやVMといった知識は、他の言…
参考: デストラクタを呼ばずに再構築 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ C++ では、動的に確保したメモリ領域にオブジェクトを構築した場合、 確保した領域を解放する前に、デストラクタを呼び出す必要があります: // 何らかの…
http://d.hatena.ne.jp/nagoya313/20100504/1272943262この、値渡し引数に const をつける、ということに対して。 上に挙げた日記の書いてあることに概ね賛成ですが、 僕個人は値渡しの引数に対しては const は付けない主義です。 無論、付けてもいいと言う…
今日は twitter で普段からお世話になってるぷりちークラスタのオフ(というか飲み会)に参加してきました。 みやびちゃんぷりちー!
boost::optional は「値 T あるいは無効値」を取ることのできるクラスです。 通常このクラスは、「失敗するかもしれない」関数の戻り値として使用されます: #include <boost/optional.hpp> #include <iostream> // 例として std::getline を optional で実装してみる boost::optional<std::string> getl</std::string></iostream></boost/optional.hpp>…
何回かコメントを書かせてもらった、 Singletonクラスにauto_ptrを使うのは案外難しい - (void*)Pないと こちらの話題。 「auto_ptrからFooを破棄されるかもしれないじゃない」とのことですが、 これは一応 std::unique_ptr を使うことで回避できます(要 C+…
明らかな異常系以外で例外に頼らなければいけない状況は変だ、と思い直した。 気軽にぽんぽん例外を投げるような設計は、どうなのだろう、と。 その辺は言語の文化も関わってくるけれど、例えばC++だと、例外は基本的に「例外的な事情」がある時しか投げない…
とても欲しい。 pcall と error で似たようなことはできるけど、やはり不十分だし。
ひきこもりにっき。@はてだらからご意見を頂きました。ありがたい事です。 とりあえず前回の記事ではいろいろと足りない点が多かったので、頂いた意見にコメントする形で補足してみようと思います。 スクリプトフォーマットはコア部分にするとのことだけど…
ひきこもってプレイちう。 現在、あとスペカ二枚でExtra解禁ってところです。
タイトル通りです。どうやら留年してしまったようです。 これで4回目の留年ということで、もう後がなくなった訳ですが、 さて、どうしましょうかね。 とりあえず自己紹介を更新しないと。
東方弾幕風の不満点、およびその解決策 - 野良C++erの雑記帳 で発表したプロジェクトを、そろそろ本格的に動かしたいです。 というわけで、とりあえず、開発場所だけでも確保してみました。 http://github.com/gintenlabo/BarrageLL 名前は BulletML をリス…
http://d.hatena.ne.jp/nagoya313/20100314/1268536979 というわけで、超期待。 僕の Lua 弾幕プロジェクトも、そろそろ具体的に動き出すべきですね。
Pythonにおける局所変数のスコープは、ブロックレベルではなく関数レベルで管理されます: x = 0 def f( cond ): if cond: x = 1 # これは f に変数 x を作っている。上の x とは無関係。 else: x = 2 return x # f の x が返される。 print( f(True) ) # 1 …
東方のファンをやっていると、時々「こんな弾幕が有ったら面白くね?」と思ったりします。 そんな時、 東方弾幕風 を使うと気軽に弾幕を製作できて便利なのですが、不満点が幾つか。 この東方弾幕風、スクリプトで使われている言語が、弾幕風オリジナルの言…
前回 の続き。 作った immutable_string に文字列結合を追加し、簡単なベンチマークを行ってみます。 さて文字列を結合する方法ですが、今回は単純に immutable_string_buffer を拡張します。 namespace gintenlib { // 本題 class immutable_string_buffer …
前回 の続き。 作った immutable_string_impl を用いて基本的な部分を実装してみます。 と、その前に、 immutable_string_impl の設計を、少し見直します。 せっかく immutable なので、ハッシュ値を予め計算しておくことで、比較の高速化を図りたいのです。…
ほにったー:IT勉強会参加者募集 ほにったー:勉強会当日! 今日は @honiho さん主催の ほにったー勉強会 に行ってきました。 まぁ ほにったー勉強会 というのは僕が勝手に呼んでるだけの名前で、本当の名前は単に IT勉強会 だったのですけど、 正直、「IT勉強…
前回 の続き。 用意した可変長バッファに、参照カウントを仕込みます。 しかし、単純に参照カウントを組み込むだけではつまらないので、一工夫。 参照カウントの部分を、それ以外の部分とは独立した部品として切り出してみます。 そうすれば、以降に参照カウ…
C++標準のstd::stringは非常に優秀な文字列ライブラリですが、少しばかりオーバースペックに感じる時があります。 現行の std::strinig は copy-on-write 方式を採用出来るように設計されているのですが、そもそも文字列を書き換えたい場合って少ないので、 …
久々にオフ会というものに行ってきました。Tweetvite :: 酔いどれエロゲ語りオフ ~チョコレートはみやびちゃんからもらうんだ!~ 無題じゃダメなのか… 酔いどれエロゲ語りオフ ~チョコレートはみやびちゃんからもらうんだ!~ 初めてオフ会というものに参…
id: gintensubaru なんかすごく今更感がありますが、興味有ったらコンタクトしてください。以上
Google Wave 自体は ついったー で「便利らしい」と聞いていたものの 招待が必要とか何とかで、今までなんとなくスルーしてきた訳ですが、 http://cpplover.blogspot.com/2010/02/google-wave.html この記事を読んで、なるほど改めて便利そうだと思い、招待…
http://www.boost.org/users/news/version_1_42_0 新規ライブラリは Boost.Uuid http://www.boost.org/doc/libs/1_42_0/libs/uuid/uuid.htmlということです。 実のところUUIDってあまり知らなかったので、折角の機会ですし、少し調べてみたいと思います。と…
「中学生/高校生だからって馬鹿にするな」って発言をすると馬鹿にされるので注意。「所詮は中学生/高校生、まだまだ未熟者です」って発言をしてみましょう。一目置かれますよ。 個人的に、この手の技法は、いろいろと広く応用出来るので便利だと思っていま…
参考: http://d.hatena.ne.jp/faith_and_brave/20100201/1264997004 「C++0xになると、C++03 でごちゃごちゃした部分がだいぶすっきり書けるようになる」 らしいですが、C++0xを待たなくてもBoostを使えばだいぶすっきり書けるので、 BoostでのC++入門はこ…
http://atnd.org/events/2092凄く参考になりました。発表者方、ありがとうございました。 並列処理は簡単な仕事ではないですが、手間をかけるだけの価値があると思います。これからのプログラミングライフで、今日学んだことを活かしていければいいなぁと思…