間違ってないかなぁ…
#include <iostream> #include <vector> using namespace std; struct Foo { static const vector<int> v; static vector<int> new_v(); }; 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() { for(vector<int>::const_iterator i = Foo::v.begin(); i != Foo::v.end(); i++) { cout << *i << endl; } return 0; }