该程序导致不希望的贪婪解析的死胡同:
struct float4x4 {};
class C
{
float4x4 M();
};
float4x4 ::C::M()
{
return float4x4{};
}
:8:1:错误:'float4x4'中没有名为'C'的成员; 您的意思仅仅是“ C”吗?
float4x4 :: C :: M()
^ ~~~~~~~~~~~~
可以使用尾随返回类型“固定”:
auto ::C::M() -> float4x4
{}
现在一切都好。
因此,我认为在使用heading-return-type声明符语法时,我们不能完全限定类名吗?
@Someprogrammerdude是的,请查看此文件godbolt.org/z/mt6GHD
—
v.oddou
该
—
rustyx
::C
部分看起来像是其他问题的解决方法。否则,它可能只是简单的C
(如编译器建议的那样)
@rustyx,只是编译器机械地重新发送代码,不想在此位置执行超复杂的“查找最低要求名称”。发出FQ名称将完全绕过查找,并且对于此类工具很方便。
—
v.oddou
::
,我想就没有其他办法了。