You may have been misguided by the fact that when a parameterless macro has to be used in text, it should be followed by something that makes LaTeX to respect the space after it:
\LaTeX has macros
would print no space between the logo and “has”, whereas
\LaTeX{} has macros
prints correctly. However, this empty pair of braces is not swallowed as part of the macro expansion, because TeX knows \LaTeX
has no argument, so it doesn't look for one.
It would be different if a macro is defined like
\newcommand{\foo}[1]{vim}
(where the argument is not used) and
\vim{} can't be escaped from
would indeed swallow the braces. For instance, \edef\VIM{\foo{}}
would be equivalent to \def\VIM{vim}
, because the braces disappear as part of argument substitution. On the other hand,
\vim\ can't be escaped from
would print with no space between “vim” and “can't”, because the argument is now “control space” and the macro throws its argument away.
Your input \num{\aMeasurement{}}
is essentially equivalent to
\num{0.9(1){}}
and you receive the error message
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! siunitx error: "invalid-token-in-number"
!
! Invalid token '\q_recursion_tail ' in numerical input.
!
! See the siunitx documentation for further information.
!
! For immediate help type H <return>.
!...............................................
The invalid token that's referred to is the open brace {
. If you scroll past the error, you'll see
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! siunitx error: "invalid-number"
!
! Invalid numerical input '0.9(1){}'.
!
! See the siunitx documentation for further information.
!
! For immediate help type H <return>.
!...............................................
that should be clear enough: \SIdoesn't like at all the tokens
{}`.
\num{123(1){}}
.\num
) so the{}
forms a group