Este programa resulta em um beco sem saída indesejável:
struct float4x4 {};
class C
{
float4x4 M();
};
float4x4 ::C::M()
{
return float4x4{};
}
: 8: 1: erro: nenhum membro chamado 'C' em 'float4x4'; você quis dizer simplesmente 'C'?
float4x4 :: C :: M ()
^ ~~~~~~~~~~~
Que pode ser 'corrigido' usando o tipo de retorno à direita:
auto ::C::M() -> float4x4
{}
agora tudo de bom.
Então, presumo que não podemos qualificar totalmente o nome da classe ao usar a sintaxe do declarador de cabeçalho-retorno-tipo?
@Someprogrammerdude sim, verifique isso godbolt.org/z/mt6GHD
—
v.oddou
A
—
rustyx
::C
peça parece uma solução alternativa para outro problema. Caso contrário, poderia ter sido simplesmente C
(como o compilador sugere;)
@rustyx é apenas a reemissão mecânica de código por um transpilador que não deseja executar um "complexo nome menos qualificado" ultra-complexo nesta posição. emitir um nome FQ ignora completamente a pesquisa e é conveniente para essas ferramentas.
—
v.oddou
::
, suponho que não haja outra maneira.