Difference between revisions of "DIP60"

From D Wiki
Jump to: navigation, search
Line 23: Line 23:
|[[DIP60/Archive]] — [https://github.com/D-Programming-Language/dmd/pull/3455 pull request]
|[[DIP60/Archive]] — [https://github.com/D-Programming-Language/dmd/pull/3455 pull request]
|[http://forum.dlang.org/post/lijoli$2jma$1@digitalmars.com forum discussion]
- [http://forum.dlang.org/post/lijoli$2jma$1@digitalmars.com forum discussion]

Revision as of 17:12, 15 April 2014

Title: DIP Add @nogc Function Attribute
DIP: 60
Version: 1
Status: Draft
Created: 2014-14-15
Last Modified: 2014-14-15
Author: Walter Bright
Links: DIP60/Archivepull request
- forum discussion


The @nogc function attribute will mark a function as not making any allocations using the GC.


Many users want to be able to guarantee that code will not allocate using the GC.


@nogc goes in the same way that the nothrow attribute does, and is quite similar in behavior. It affects inheritance in that it is covariant. The name mangling for it will be "Ni". @nogc will be inferred for template functions in the same manner as nothrow is. @nogc will be transitive, in that all functions called by an @nogc function must also be @nogc.


@nogc int func(int a) { ... }


This document has been placed in the Public Domain.