Improve optional to work with clang++ and libdstc++