« nested classからは親のprivate空間にアクセスできるか。 | メイン | Delphi 2009/C++Builder 2009で導入された新しい文字列型の不具合 »

C++ TR1 静的な表明

static_assertは、コンパイル時に式が条件を満たすかテストします。
式がfalseを返すときは、コンパイルに失敗します。

static_assert(テストする式, コンパイルエラーのメッセージ)

static_assert(sizeof(int) < sizeof(long), "error");

has_virtual_destructorは、型に仮想デストラクタが存在するかどうかをテストします。

#include <type_traits>
static_assert(
  std::tr1::has_virtual_destructor<TObject>::value, 
  "destructor must be virtual");

例えば、longがintより大きいサイズであることに依存するアルゴリズムの実装のように、標準では保障されていない箇所の確認などの用途がある

C++0x - Wikipedia

なるほど。
実行時ではなく、コンパイル時にテストできるのは嬉しいかもしれません。

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/819

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年09月28日 12:31に投稿されたエントリーのページです。

ひとつ前の投稿は「nested classからは親のprivate空間にアクセスできるか。」です。

次の投稿は「Delphi 2009/C++Builder 2009で導入された新しい文字列型の不具合」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35