コンテンツにスキップ

Visual C++2008のstd::vectorには data() がない

何?

C++のSTLでもっともよく使うコンテナといえば std::vector だろう。残念ながらVisual C++2008における対応は芳しくなく、なんと data() 関数すら実装されていない。C++03から5年も経っているはずなのだが……

2026年にもなってVisual C++2008の話をする理由については沈黙するほかない。ともかくないものはない。

回避

先頭要素のポインタを使って逃げよう。

std::vector<int> v;

// data()はないんだ、すまない
int* array = v.data(); // NG

int* array = &v[0];

可能ならVisual C++2008そのものから逃げよう。可能ならの話だが。