Impossível qualificar totalmente o nome da classe no declarador fora da classe da definição de função

Este programa resulta em um beco sem saída indesejável: struct float4x4 {}; class C { float4x4 M(); }; float4x4 ::C::M() { return float4x4{}; } : 8: 1: erro: nenhum membro chamado 'C' em 'float4x4'; você quis dizer simplesmente 'C'? float4x4 :: C :: M () ^ ~~~~~~~~~~~ Que pode ser...