View source code Display the source code in std/traits.d from which this page was generated on github. 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 using local clone. Page wiki View or edit the community-maintained wiki page associated with this page.

Enum std.traits.FunctionAttribute

Returns the attributes attached to a function func.

The enum base type is uint .

Enum members

Name Description
const_ These flags can be bitwise OR-ed together to represent a complex attribute.
immutable_ These flags can be bitwise OR-ed together to represent a complex attribute.
inout_ These flags can be bitwise OR-ed together to represent a complex attribute.
nogc These flags can be bitwise OR-ed together to represent a complex attribute.
none These flags can be bitwise OR-ed together to represent a complex attribute.
nothrow_ These flags can be bitwise OR-ed together to represent a complex attribute.
property These flags can be bitwise OR-ed together to represent a complex attribute.
pure_ These flags can be bitwise OR-ed together to represent a complex attribute.
ref_ These flags can be bitwise OR-ed together to represent a complex attribute.
return_ These flags can be bitwise OR-ed together to represent a complex attribute.
safe These flags can be bitwise OR-ed together to represent a complex attribute.
shared_ These flags can be bitwise OR-ed together to represent a complex attribute.
system These flags can be bitwise OR-ed together to represent a complex attribute.
trusted These flags can be bitwise OR-ed together to represent a complex attribute.

Example

import std.traits : functionAttributes, FunctionAttribute;

alias FA = FunctionAttribute; // shorten the enum name

real func(real x) pure nothrow @safe
{
    return x;
}
static assert(functionAttributes!func & FA.pure_);
static assert(functionAttributes!func & FA.safe);
static assert(!(functionAttributes!func & FA.trusted)); // not @trusted

Authors

Walter Bright, Tomasz Stachowiak (isExpressions), Andrei Alexandrescu, Shin Fujishiro, Robert Clipsham, David Nadlinger, Kenji Hara, Shoichi Kato

License

Boost License 1.0.

Comments