The same is true for + expansion: Multiple words:
$ set -- 1 2; v=( "${#+$@}" ); declare -p v
declare -a v=([0]="1" [1]="2")
Empty string:
$ set -- ; v=( "${#+$@}" ); declare -p v
declare -a v=([0]="")
Nothing:
$ set -- ; v=( "${#+${#+$@}}" ); declare -p v
declare -a v=()
