[boost] [optional] operator<(optional<T>, T) -- is it wrong?