2011-02-07 7 views
3

boost :: array :: static_sizeがtr1 :: arrayの一部ではないことが判明しました。少なくとも私の実装(GCC 4.2.1)には含まれていません。私はtr1のドキュメントでそれを見つけることができません。コンパイル時にtr1配列のサイズを確認する

tr1配列の要素数にコンパイル時アサーションを実行する別の方法はありますか?

ブースト配列ではなく、TR1の配列では、次の作品は:

template<typename T> 
void CheckArray(const T& input) { 
    BOOST_STATIC_ASSERT(T::static_size >= 2); 
} 

私はだけではなく、ブーストの配列を使用することができます知っているが、私は興味があります。

これを行う方法がない場合、誰かがなぜstatic_sizeがtr1に含まれていなかったのか知っていますか?それはtr1が作成された後に追加するために追加された機能ですか?

答えて

4

TR1自体はstd::tuple_size<array<T, N> >::valueN、配列のサイズを返すと言います。

+0

完璧、ありがとう:) – irh

関連する問題