restart of branch, this is to include changes from trunk

svn path=/sandbox-branches/birbacher/fix_iostreams/boost/smart_cast.hpp; revision=40545