普通に使える感じだけど、罠がある気が。
#include <iostream> #include <vector> using namespace std; class Foo { static const vector<int> v; static const vector<int> new_v(); public: void func() { for(vector<int>::const_iterator i = Foo::v.begin(); i != Foo::v.end(); i++) { cout << *i << endl; } } }; const vector<int> Foo::new_v() { vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); return v; } const vector<int> Foo::v = Foo::new_v(); int main() { Foo foo; foo.func(); return 0; }