<p>Using the Qt Visual studio integration, adding a new Qt class adds two separate moc.exe generated files - one for debug and one for release (and one for any other configuration currently existing). Yet the two eventual generated files seem to be identical.</p>

<p>On the other hand when adding a UI class, the uic.exe generated files don't have this separation and are the same file for all configurations.</p>

<p>Does anybody have an idea why there's a need for a separate moc file for every configuration? When is there a difference between the two?</p>

My guess would be that separate debug and release versions are needed because the moc output is generated from user-defined source code. So the moc output might be different between debug and release builds if the preprocessed class source differs between debug and release (for example, a signal that exists only in the debug build).
This doesn't apply to the uic-generated files because those are generated from the .ui XML, which can't vary between debug and release configurations.