auto/decltype question about implementation

Dodji Seketeli dodji@seketeli.org
Tue Mar 13 08:29:00 GMT 2012


niXman <i.nixman@gmail.com> a écrit:

> Hi,

Hello niXman,

> Can you please tell, auto is implemented based on the decltype
> implementation with some semantics, or they are two completely
> different implementations?

I think they are different.

> And one more question: in which files/functions I can view the
> implementation of auto and decltype?

Generally speaking, the initialization of a declaration is handled in
gcc/cp/decl.c:cp_finish_decl.  In that function, G++ detects if the type
of declaration uses 'auto'.  If yes, auto-deduction is performed by
calling gcc/cp/pt.c:do_auto_deduction.

If auto is used in the context of a template, then I guess
auto-deduction happens during the substitution of template arguments for
template parameters.  For that case, you can look at
gcc/cp/pt.c:tsubst_decl.  Look for do_auto_deduction in there.

I hope this helps.

-- 
		Dodji



More information about the Gcc mailing list