2013-05-12 16 views

答えて

7

これはあなたが探しているものですか?

std::vector<int>::value_type 

また、参照を取り除くために

std::remove_reference<decltype(vec[0])>::type 

を使用することができます。

もう1つのオプションはdecltype(vec)::value_typeです。ただし、Visual Studioではcurrently workがコンパイラのバグのために表示されません。そのコンパイラの回避策は、中間typedefを作成することです。オブジェクト、cについては

typedef decltype(vec) vec_type; 
vec_type::value_type foo; 
+0

二作品。ありがとうございました。 –

+0

'decltype(vec):: value_type'のようなものがあると良いでしょう。 –

+2

@Mikeそれは動作します。あなたはMSVCを使用していますか? 'decltype'式の後に' :: 'を書くと、エラーを引き起こすバグがコンパイラにあります。 – Praetorian

0

arraysを含む任意のコンテナタイプと、すべての標準ライブラリのcontainersなどstd::vectorなどとstd::list:私のために

typename std::remove_reference<decltype(*std::begin(c))>::type

関連する問題