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

C++03 で C++0x の std::max_align_t をシミュレートする

C++ において、データのアライメントというのは極めて大事な概念です。*1 しかし、今までの C++ の規格では、その辺りのコードに必要な情報を得るための方法が少なく、 移植性を意識したコードを書こうと思ったら、 Boost 辺りに頼らなければいけませんでし…

pImpl + thin template 技法の簡単な例を作ってみた。

C++

テンプレート使うとヘッダが肥大化してコンパイル&リンク時間が爆発する! なんとかして! という問題への対処法です。コードはこちら: http://gist.github.com/640298 以下、解説…ですが、しっかりした解説を書くのは面倒なので、箇条書き程度に。 基本ア…

ライセンスとか

そういえば明確に言及して無かったと思うので、ここで改めて明記しておきます。 この blog に貼られたコード片*1は、特に言及がない限り NYSL です。 もし仮に何かに使おうなんていう奇特な方がいたら、自由に使ってください。 ただし、その場合は、コードの…

生ポインタの軽快な代替として使えるクラスを作ってみた。

昔 Boost.Optional Must Go (2) - 野良C++erの雑記帳 の後半に書いた、 「boost::optional はサイズの点でポインタより不利である」 という不満点を解決するためのクラスを作ってみました: etude::optional_ref http://gist.github.com/634279 使い方は …

動的メモリ確保を行わない std::seed_seq を作ってみた。

C++0x の の話。 基本的なこととかは 本の虫: C++0xの新しい乱数ライブラリ、random を参照してください。 さて、上記の記事で登場している std::seed_seq ですが、 N3126 の 26.5.7.1 Class seed_seq によると、このクラスは内部に std::vector を保持して…