3 template<class T> struct optional {};
5 template<typename GetWhat>
6 operator optional<GetWhat>() const {return optional<GetWhat> ();}
7 template<typename AsWhat>
8 optional<AsWhat> maybe() const
10 return this->operator optional<AsWhat>();
15 get_from_json().maybe<int>();