Unfortunately the Visual Studio compiler outputs error messages to stdout instead of stderr. By default colcon build hides the stdout output and only shows stderr output.
You can configure the output using the option --event-handlers .... In this case you likely want to use console_cohesion+ to enable always outputting all output after a package has been finished. Another option would be console_direct+ but that would interleave the output from packages processed in parallel so only recommended when you build a single package.