View source code
							
							
						
								Display the source code in std/traits.d from which thispage was generated on github.
							
						
							Report a bug
							
						
								If you spot a problem with this page, click here to create aBugzilla issue.
							
						
							
								Improve this page
							
							
					
								Quickly fork, edit online, and submit a pull request for this page.Requires a signed-in GitHub account. This works well for small changes.If you'd like to make larger changes you may want to consider usinglocal clone.
							
						Enum member std.traits.isCallable
Detect whether T is a callable object, which can be called with the
function call operator class="pln">LPAREN...class="pln">RPAREN.
						
				enum isCallable(alias callable) = true;
						
					
				Example
Functions, lambdas, and aggregate types with (static) opCall.
void f() { }
int g(int x) { return x; }
static assert( isCallable!f);
static assert( isCallable!g);
class C { int opCall(int) { return 0; } }
auto c = new C;
struct S { static int opCall(int) { return 0; } }
interface I { real value() @property; }
static assert( isCallable!c);
static assert( isCallable!(cExample
Templates
void f()() { }
T g(T = int)(T x) { return x; }
struct S1 { static void opCall()() { } }
struct S2 { static T opCall(T = int)(T x) {return x; } }
static assert( isCallable!f);
static assert( isCallable!g);
static assert( isCallable!S1);
static assert( isCallable!S2);
Example
Overloaded functions and function templates.
static struct Wrapper
{
    void f() { }
    int f(int x) { return x; }
    void g()() { }
    T g(T = int)(T x) { return x; }
}
static assert(isCallable!(WrapperAuthors
Walter Bright,
            Tomasz Stachowiak (isExpressions),
            Andrei Alexandrescu,
            Shin Fujishiro,
            Robert Clipsham,
            David Nadlinger,
            Kenji Hara,
            Shoichi Kato
License
					Copyright © 1999-2025 by the D Language Foundation | Page generated by ddox.