I am looking for recommendation for object serialization/deserialization library in c++? Which one are the most advanced and open-sourced? 

Can it handle 

* Any class that users defined?
* Object hierarchy (parent and child classes)?
* A Tree of objects? Class A has an attribute of Class B which has an attribute of Class C?
* STL containers? Class A has a vector of Class B?
* A cyclic of objects? Class A has a pointer pointing to B which has a pointer to A?

I find boost serialization library. I am not sure what is its limitation from <http://www.boost.org/doc/libs/1_42_0/libs/serialization/doc/tutorial.html>