optional<U> can initialize an optional<T> if U is convertible to T (#16)