После того, как я почесал голову на некоторых ошибках в некотором шаблоне кода, который использовал std::vector::value_type
, я отследил его до следующего. Является ли это правильным поведением в соответствии со стандартом, или это проблема с MSVC 2012 CTP?Правильное поведение для std :: vector <T> :: value_type
typedef std::vector<int>::value_type t1;
typedef std::vector<int const>::value_type t2;
static_assert(!std::is_same<t1, t2>::value, "hmmm");
Вышеуказанное утверждение не выполнено.
IMO Я бы ожидал 'std :: vector' (и других контейнеров)' std :: remove_const' для своего 'value_type', но это, как представляется, показывает, что они этого не делают. Да. –
@MooingDuck: Нет. В соответствии со стандартом 'value_type' является просто' T'. Он не устраняет константу. – Nawaz
Вопрос в следующем: 'std :: vector' разрешено? –
Nawaz