www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - What is this function call operator?

reply "Gary Willoughby" <dev nomad.so> writes:
If you visit this link:

http://dlang.org/phobos/std_traits.html#isCallable

There is this paragraph:

"Detect whether T is a callable object, which can be called with 
the function call operator (...)."

What is this function call operator? (...) Where can i learn more 
about it?
Aug 27 2015
next sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Thursday, 27 August 2015 at 15:18:24 UTC, Gary Willoughby 
wrote:
 What is this function call operator? (...) Where can i learn 
 more about it?
It is the () at the end of a thing. You can overload it in a struct by writing an opCall member.
Aug 27 2015
parent reply "Gary Willoughby" <dev nomad.so> writes:
On Thursday, 27 August 2015 at 15:19:15 UTC, Adam D. Ruppe wrote:
 On Thursday, 27 August 2015 at 15:18:24 UTC, Gary Willoughby 
 wrote:
 What is this function call operator? (...) Where can i learn 
 more about it?
It is the () at the end of a thing. You can overload it in a struct by writing an opCall member.
Sorry, I mean the three dots '...' that seems to be what the documentation is referring to. Also the `isCallable` template uses it.
Aug 27 2015
parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Thursday, 27 August 2015 at 16:03:58 UTC, Gary Willoughby 
wrote:
 Sorry, I mean the three dots '...' that seems to be what the 
 documentation is referring to. Also the `isCallable` template 
 uses it.
That just means it can take whatever arguments. The documentation is just saying it is callable with anything; the ... is a placeholder. In the template itself, (T...) is a variadic argument list, again meaning it can take anything. (The reason isCallable does it though isn't to actually take multiple arguments, it is so it can take any *kind* of argument; a bit of a hack.)
Aug 27 2015
parent "Gary Willoughby" <dev nomad.so> writes:
On Thursday, 27 August 2015 at 16:12:35 UTC, Adam D. Ruppe wrote:
 On Thursday, 27 August 2015 at 16:03:58 UTC, Gary Willoughby 
 wrote:
 Sorry, I mean the three dots '...' that seems to be what the 
 documentation is referring to. Also the `isCallable` template 
 uses it.
That just means it can take whatever arguments. The documentation is just saying it is callable with anything; the ... is a placeholder. In the template itself, (T...) is a variadic argument list, again meaning it can take anything. (The reason isCallable does it though isn't to actually take multiple arguments, it is so it can take any *kind* of argument; a bit of a hack.)
Ah right, I get it. Thanks.
Aug 27 2015
prev sibling next sibling parent Daniel =?UTF-8?B?S296w6Fr?= <kozzi dlang.cz> writes:
On Thu, 27 Aug 2015 15:18:22 +0000
"Gary Willoughby" <dev nomad.so> wrote:

 If you visit this link:
 
 http://dlang.org/phobos/std_traits.html#isCallable
 
 There is this paragraph:
 
 "Detect whether T is a callable object, which can be called with 
 the function call operator (...)."
 
 What is this function call operator? (...) Where can i learn more 
 about it?
http://dlang.org/operatoroverloading.html#function-call
Aug 27 2015
prev sibling parent anonymous <anonymous example.com> writes:
On Thursday 27 August 2015 17:18, Gary Willoughby wrote:

 What is this function call operator? (...) Where can i learn more
 about it?
http://dlang.org/operatoroverloading.html#function-call http://ddili.org/ders/d.en/operator_overloading.html#ix_operator_overloading.opCall
Aug 27 2015