I was a bit confused about the wish to remove superfluous brackets from C++
code, as brackets are actually operator calls and should never be superfluous.
Then I realized that brackets can be used to refer to all kinds of punctuation
marks like parenthesis, (square) brackets, or braces, so your request started to
make sense. I think you should follow the practise of computer scientist, and
use the word bracket only if you mean square bracket (see wikipedia: "With
respect to computer science, the term is sometimes said to only strictly apply
to the square or box type.")
FWIW, I doubt very much you'll find anyone else has had enough motive
to create and maintain such a program or library. Parsing C++
expressions is a significant pain, and can't be done without parsing
the entire program to know the types of all the arguments, including
return types of functions. To do it to remove brackets doesn't
clearly offer a good return on effort ;-). Also, simplification
relies on operator precedence, and as the rules for that are pretty
complex, programmers often want certain brackets left in for
"documentation" purposes.
Just wanted to add, that braces (see above) are also used to insert a code block
which can be used to force the compiler to dispose of local variables to this
block. There are actually examples where this behaviour cannot be taken away, or
else the code will crash.
Regards,
Stuart