I'm playing around with Boost.Polygon and I'm wondering what functionality is supported for the polygon_with_holes concept. Specifically the boolean operators.

For example, can I create a polygon_set with polygon_with_holes. 
I would like to punch a hole in a polygon and get a polygon with a hole as supposed to a key holed contour. Similarily, when combining the following rectangles:

p += rectangle_data<int>(0, 0, 100, 10);
p += rectangle_data<int>(90, 0, 100, 100);
p += rectangle_data<int>(0, 90, 100, 100);
p += rectangle_data<int>(0, 0, 10, 100);

I would like to end up with
+-----+
|     |
| +-+ |
| | | |
| +-+ |
|     |
+-----+
as opposed to
+-----+
|     |
| +-+ |
| | | |
| +-+ |
|   | |
+---+-+