merged from trunk

svn path=/branches/proto/v4/libs/optional/; revision=49607