Feb. 2008 Recently, I suggested there should be serialization support wrt the Range library - http://lists.boost.org/Archives/boost/2008/01/132294.php. I'm writing to inform you of my plans in this regard. This input: Msgs (sub_range >) @out } to the C++ Middleware Writer results in this output: #include #include #include using boost::sub_range; struct Msgs { inline Msgs() {} inline ~Msgs() {} inline int Send(Buffer* buf, const sub_range >& about1) { unsigned int headCount = 0; headCount = about1.size(); if (!buf->Receive(&headCount, sizeof(int))) { buf->ews_.SetErrorWords(1, __FILE__, __LINE__); return 0; } list::const_iterator rit1 = boost::begin(about1); list::const_iterator rit2 = boost::end(about1); for (; rit1 != rit2; ++rit1) { if (!buf->Receive(&(*rit1), sizeof(short))) { buf->ews_.SetErrorWords(1, __FILE__, __LINE__); return 0; } } if (!buf->SendStoredData()) { buf->ews_.SetErrorWords(2, __FILE__, __LINE__); return 0; } return 1; } }; This functionality isn't available online yet. G-d willing, it will be available by the middle of next month. The file Buffer.hh is here - http://home.seventy7.com/misc/Buffer.hh. There's also a version that calculates and sends the total message length here - http://home.seventy7.com/misc/rangeMsg.hh. (An option on the front end is checked to obtain this functionality.) This thread on clc++m, http://preview.tinyurl.com/218cnh, convinced me of the need to support message lengths. The @out used above as input to the C++ Middleware Writer indicates you only want a Send function--by default both a Send and Receive function are generated. I believe sub_range supports operator << but not operator >>. So the @out option is necessary when using sub_range. A container could be used to receive data sent via the above Send function; as Middle code it would look something like this: Msgs (sub_range >) @out (vector) @in } Brian Wood Ebenezer Enterprises www.webebenezer.net Keep your heart with all diligence; for out of it are the issues of life. Proverbs 4:23