How to detect a lambda expression get it is signature

Jacob Carlborg via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jun 1 23:26:43 PDT 2014


On 02/06/14 01:00, bioinfornatics wrote:
> Hi i am looking how to perform this action with traits. Below
> some code to show what it fail
>
>
> Regards
>
>
> ---- CODE
> import std.traits       : isDelegate, isSomeFunction,
> MemberFunctionsTuple, ParameterIdentifierTuple;
>
>
> struct section( alias start, alias end )
> {
>       alias checkStart = start;
>       alias checkEnd = end;
> }
>
> void main()
> {
>       alias tmp = bool delegate( string ); // what i would like to
> get
>       alias s = section!( (word) => word =="a" , (word) => word ==
> "b" );
>       pragma( msg, isSomeFunction!(s.checkStart) );           //
> false
>       pragma( msg, isDelegate!(s.checkStart) );               //
> false
>       pragma( msg, __traits(identifier, s.checkStart) );      //
> __lambda1
>       pragma( msg, ParameterIdentifierTuple!(s.checkStart) ); //
> error
>       pragma( msg, MemberFunctionsTuple!( s.checkStart ) );   //
> error
> }

Have a look at this thread: 
http://forum.dlang.org/thread/lkl0lp$204h$1@digitalmars.com

-- 
/Jacob Carlborg


More information about the Digitalmars-d-learn mailing list