This program results in an undesired parsing greediness dead-end:
struct float4x4 {};
class C
{
float4x4 M();
};
float4x4 ::C::M()
{
return float4x4{};
}
:8:1: error: no member named 'C' in 'float4x4'; did you mean simply 'C'?
float4x4 ::C::M()
^~~~~~~~~~~~
Which can be 'fixed' using trailing return type:
auto ::C::M() -> float4x4
{}
now all good.
So I take it we can't fully qualify the class-name when using heading-return-type declarator syntax?