There are four options (two of which have been suggested by others):
Use the after
structure in vimfiles (~/.vim/after/syntax/cpp.vim):
:help after-directory
Use match for the current window:
:match really_unique_name "[()]"
Use matchadd(), again for the current window, but this allows you to delete individual matches if you later need to:
:call matchadd('really_unique_name', "[()]")
" Or
:let MyMatchID = matchadd('really_unique_name', "[()]")
" and then if you want to switch it off
:call matchdelete(MyMatchID)
Install Dr Chip's rainbow.vim plugin to get brace highlighting in different colours depending on the indentation level.
For this situation, I'd recommend option 1 as it looks like you want to make it part of the general syntax. If you want to use matches and you want them to be buffer specific (rather than window specific), you'll need something like:
function! CreateBracketMatcher()
call clearmatches()
call matchadd('really_unique_name', "[()]")
endfunc
au BufEnter <buffer> call CreateBracketMatcher()
For more information, see:
:help after-directory
:help :match
:help matchadd()
:help matchdelete()
:help clearmatches()
:help function!
:help autocmd
:help autocmd-buffer-local
:help BufEnter
You may also be interested in my answer to this question, which covers more general operator highlighting.