June 10, 2016 isCallable and templates | ||||
---|---|---|---|---|
| ||||
Consider: import std.traits; class Foo { void bar() {} void baz()() {} } This works: static assert(isCallable!(Foo.bar)); This does not: static assert(isCallable!(Foo.baz)); However, clearly I can call baz due to IFTI (with the equivalent syntax, someFoo.baz() or someFoo.baz). Is there a way to fix this? -Steve |
June 11, 2016 Re: isCallable and templates | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | On Friday, 10 June 2016 at 17:32:03 UTC, Steven Schveighoffer wrote: > Consider: > > import std.traits; > class Foo > { > void bar() {} > void baz()() {} > } > > This works: > > static assert(isCallable!(Foo.bar)); > > This does not: > > static assert(isCallable!(Foo.baz)); > > However, clearly I can call baz due to IFTI (with the equivalent syntax, someFoo.baz() or someFoo.baz). Is there a way to fix this? > > -Steve i guess thats the same reason that isCallable!(unaryFun!someString) -> false if not, then it probably would also be usefull if it would be evaluated to true. |
Copyright © 1999-2021 by the D Language Foundation