On 20 Sep 2013 at 23:00, Michael Marcin wrote:
VS2012 doesn't appear to do empty base class optimization for multiple inheritance at all, so templated/untemplated also makes no difference here.
I believe the /vmm compiler flag will fix that (http://msdn.microsoft.com/en-us/library/bkb78zf3.aspx) at the cost of breaking ABI. In essence, due to backwards ABI compat constraints requiring the default /vmv option, MSVC can only collapse a single empty base class, not more than one. In other words, it's a feature not a bug :) I absolutely agree though that when they moved to 64 bit they should have fixed this. They fixed lots of long standing ABI problems with the 64 bit move, but I believe not this one sadly. Niall -- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/