Inconsistent typedef syntax back

So, I read about the implementation of lambda calculus with template templates , one of the proofs of the completeness of Turing Turing.

When I read the source code, I came across one (and then more) lines, as shown below:

template <int Name, typename Value, typename Env> struct EnvLookup <Name, Binding<Name,Value,Env> > { Value typedef result ; // Line 84, what is this ? } ; 

I'm used to typedef Type Alias; but Type typedef Alias; looks alien to me. And yet it compiles fine with g ++ 4.9.0 and the old old -std=c++98 .

I could not find documentation on this syntax from Google, and not here. Is this standard? Perhaps a g ++ extension? Will it fit together?

+6
source share

Source: https://habr.com/ru/post/972645/


All Articles