1
関数定義のクラス外宣言子でクラス名を完全に修飾することはできません
このプログラムは、望ましくない解析の貪欲な行き止まりをもたらします。 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宣言子構文を使用するときにクラス名を完全に修飾できないと思いますか?