所以我在阅读the implementation of lambda calculus with template metaprograms,这是TMP图灵完整性的一个证明。
当我阅读源代码时,我偶然发现了一行(然后更多),如下所示:
template <int Name, typename Value, typename Env>
struct EnvLookup <Name, Binding<Name,Value,Env> >
{
Value typedef result ; // Line 84, what is this ?
} ;
我习惯typedef Type Alias;
,但Type typedef Alias;
对我来说很陌生。并且它仍然可以用g ++ 4.9.0和旧的-std=c++98
编译好。
我在Google上找不到有关此语法的任何文档,也未在此处找到。这是否符合标准?也许是一个g ++扩展?它会融合吗?