Imposible calificar completamente el nombre de clase en la definición de declarador de función fuera de clase

Este programa da como resultado un punto muerto de codicia no deseada: struct float4x4 {}; class C { float4x4 M(); }; float4x4 ::C::M() { return float4x4{}; } : 8: 1: error: ningún miembro llamado 'C' en 'float4x4'; ¿quiso decir simplemente 'C'? float4x4 :: C :: M () ^ ~~~~~~~~~~~ Que...