> Is it possible to wrap the C++ STL stuff? Say, for example, vector?
Yes. I wrapped set for instance

> /usr/local/lib/ruby/1.8/i686-darwin8.9.1/intern.h:207: error: use of
> enum 'rb_thread_status' without previous declaration
This is not a C++ bug. This is a bug in 1.8.6-p36, for which I know no 
workaround. rb_thread_status is defined in node.h but ruby.h inclu

> cvector.c:6: error: expected identifier before numeric constant
> cvector.c:6: error: expected ',' or '...' before numeric constant
You're trying to initialize a struct field. You need to do
struct cvector {
  vector<VALUE> array;
};
an resize the array if needed.

Note that you can wrap std::vector directly (no need to go through an 
intermediate cvector structure)

Sylvain