38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
vt.push_back( move( *teSig ) );
return true;
} );
if( !success )
return nullopt;
auto pToks = make_shared< vector< Term > >( move( body ) );
return ToValue( TFunc( move( funcType ),
TERM( make_shared< Vector >( vt.persistent(), false ) ),
AppendToVectorTerm( c.identity(), TERM( id ) ),
move( pToks ) ) );
}
}
|
>
>
>
>
>
>
>
>
|
>
>
|
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
vt.push_back( move( *teSig ) );
return true;
} );
if( !success )
return nullopt;
auto rtSig = BuildTemplateSignature( c, ValueToIRExpr( returnType ) );
if( !rtSig )
{
cout << "Invalid template return type or texpr.\n";
return nullopt;
}
auto pToks = make_shared< vector< Term > >( move( body ) );
return ToValue( TFunc( move( funcType ),
TVEC(
TERM( make_shared< Vector >( vt.persistent(), false ) ),
*rtSig
),
AppendToVectorTerm( c.identity(), TERM( id ) ),
move( pToks ) ) );
}
}
|