I don't use g++ so I don't know about its vim errorformats and related things, but try
this.
For reference, this is what I have to compile using javac and an errorformat line to be able to navigate (and highlight) errors in the code as reported by javac:
Code:
set makeprg=javac\ %
set errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%#
Håkan