Bu program, istenmeyen bir ayrıştırma hırslı çıkmaz ile sonuçlanır:
struct float4x4 {};
class C
{
float4x4 M();
};
float4x4 ::C::M()
{
return float4x4{};
}
: 8: 1: hata: 'float4x4' içinde 'C' adlı üye yok; sadece 'C' mi demek istediniz?
float4x4 :: C :: M ()
^ ~~~~~~~~~~~
Sondaki dönüş türü kullanılarak 'sabit' olabilir:
auto ::C::M() -> float4x4
{}
şimdi hepsi iyi.
Başlık-dönüş-tipi bildirici sözdizimini kullanırken sınıf ismini tam olarak niteleyemeyeceğimi mi sanıyorum?
@Someprogrammerdude evet, bunu kontrol et godbolt.org/z/mt6GHD
—
v.oddou
::C
Bölüm diğer bazı sorunun çözümü gibi görünüyor. Aksi takdirde basit olabilirdi C
(derleyici önerdiği gibi;)
@rustyx, bu konumda ultra karmaşık bir "en az nitelikli isim bul" işlemini yürütmek istemeyen bir transpiler tarafından kodun mekanik olarak yeniden yayınlanmasıdır. FQ adı yaymak aramayı tamamen atlar ve bu tür araçlar için uygundur.
—
v.oddou
::
, başka bir yol olmadığını varsayalım.