这个程序导致了一个不受欢迎的解析贪婪死胡同:
struct float4x4 {};
class C
{
float4x4 M();
};
float4x4 ::C::M()
{
return float4x4{};
}
:8:1: 错误:“float4x4”中没有名为“C”的成员;你的意思是简单的'C'吗?
float4x4 ::C::M()
^~~~~~~~~~~~
可以使用尾随返回类型“修复”:
auto ::C::M() -> float4x4
{}
现在一切都好。
所以我认为我们不能在使用标题返回类型声明符语法时完全限定类名?