2010-05-01から1ヶ月間の記事一覧

Boost.Optional Must Go

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>…

C++ で Haskell の Either っぽい何かを作ってみた。

動機: boost::optionalだけじゃなくboost::eitherがほしい - Faith and Brave - C++で遊ぼう Boost.Optional は C++ でも屈指の便利ライブラリですが、 「戻り値として使う」場合には、時々「失敗した」という状況の他に、失敗した状況を示すような値が返せ…

第四回 カーネル/VM探検隊 に参加してきました。

第四回 カーネル/VM探検隊 : ATND kernel/vm 勉強会 - Togetter 今日は @syuu1228 さん主催の勉強会/懇親会に参加してきました。 僕はどちらかと言うと C++ という『言語』よりの人間ですが、 C++ という言語の性質上、カーネルやVMといった知識は、他の言…

C++でデストラクタを呼ばなくていい条件

参考: デストラクタを呼ばずに再構築 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ C++ では、動的に確保したメモリ領域にオブジェクトを構築した場合、 確保した領域を解放する前に、デストラクタを呼び出す必要があります: // 何らかの…

非 const の変数を同一スコープ中で const に「凍結」する方法が欲しい

C++

http://d.hatena.ne.jp/nagoya313/20100504/1272943262この、値渡し引数に const をつける、ということに対して。 上に挙げた日記の書いてあることに概ね賛成ですが、 僕個人は値渡しの引数に対しては const は付けない主義です。 無論、付けてもいいと言う…