Este programa da como resultado un punto muerto de codicia no deseada:
struct float4x4 {};
class C
{
float4x4 M();
};
float4x4 ::C::M()
{
return float4x4{};
}
: 8: 1: error: ningún miembro llamado 'C' en 'float4x4'; ¿quiso decir simplemente 'C'?
float4x4 :: C :: M ()
^ ~~~~~~~~~~~
Que se puede 'arreglar' usando el tipo de retorno final:
auto ::C::M() -> float4x4
{}
ahora todo bien.
Entonces, supongo que no podemos calificar completamente el nombre de la clase cuando usamos la sintaxis de declarador de tipo retorno-encabezado.
@Someprogrammerdude sí, mira esto godbolt.org/z/mt6GHD
—
v.oddou
La
—
rustyx
::C
parte parece una solución alternativa para algún otro problema. De lo contrario, podría haber sido simplemente C
(como sugiere el compilador;)
@rustyx es solo una reemisión mecánica de código por un transpilador que no quiere ejecutar un "nombre menos calificado" ultra complejo en esta posición. emitir un nombre FQ omite la búsqueda por completo y es conveniente para tales herramientas.
—
v.oddou
::
, supongo que no hay otra manera.