I don’t think there are cases where you’d have empty brackets when declaring a variable, but they are used when indicating the return type of a function you’re defining in the functions block. For example:
functions {
// return a real array containing x1 and x2
real[] foo(real x1, real x2) {
return {x1, x2};
}
}
The use of real[] here indicates that the function will return an array of reals and not a scalar real.