struct Point { int x; int y; }; void test() { std::vector<Point> points; // 悲しいことに_1.xと書けない。 // ->*演算子が定義されているので、それを使ってこう書く必要が。 std::for_each(points.begin(), points.end(), std::cout <<constant("(") << &_1->*&Point::x << ", " << &_1->&Point::y << ")\n"); }