DIP56 - inlining
Mike via Digitalmars-d
digitalmars-d at puremagic.com
Wed Feb 4 03:02:37 PST 2015
On Wednesday, 4 February 2015 at 10:57:25 UTC, Johannes Pfau
wrote:
>
> alias forceinline = Attribute!("forceinline");
> (I don't remember the exact syntax but you can use an alias)
>
The syntax I'm using is...
version (GNU)
{
static import gcc.attribute;
enum inline = gcc.attribute.attribute("forceinline");
}
@inline T volatileLoad(T)(T* a)
{
asm { "" ::: "memory"; };
return *cast(shared T*)a;
}
@inline void volatileStore(T)(T* a, in T v)
{
asm { "" ::: "memory"; };
*cast(shared T*)a = v;
}
Quite nice IMO.
Mike
More information about the Digitalmars-d
mailing list