2013-05-12 8 views

cevap

7

Bu ne arıyor?

std::vector<int>::value_type 

Ayrıca

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

referans kurtulmak için kullanabilirsiniz.

Başka bir seçenek decltype(vec)::value_type kullanmaktır. Ancak, bu bir derleyici hata nedeniyle Visual Studio'da currently work değil. Bu derleyici için bir geçici çözüm, bir ara typedef oluşturmaktır. nesne, c için

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

ikinci çalışır. Teşekkür ederim. –

+0

Eğer decltype (vec) :: value_type' gibi bir şey varsa daha iyi olurdu. –

+2

@Mike Bu işe yarıyor. MSVC kullanıyorsun değil mi? Herhangi bir 'decltype' ifadesinden sonra' '' yazarsanız, derleyicide hatalara neden olan bir hata vardır. – Praetorian

0

, arrays da dahil olmak üzere herhangi bir konteyner tipi ve standart bir kütüphanenin bir containers örneğin std::vector gibi std::list: Beni

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

İlgili konular