Report a bug
If you spot a problem with this page, click here to create a Bugzilla 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 using a local clone.


This module contains utility functions to help the implementation of the runtime hook
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
const char[] TraceHook(string Type, string Hook);
TraceGC wrapper generator around the runtime hook Hook.
Type The type of hook to report to accumulate
Hook The name hook to wrap
pure @trusted auto _d_HookTraceImpl(T, alias Hook, string errorMessage)(string file, int line, string funcname, Parameters!Hook parameters);
TraceGC wrapper around runtime hook Hook.
T Type of hook to report to accumulate
Hook The hook to wrap
errorMessage The error message incase version != D_TypeInfo
string file File that called _d_HookTraceImpl
int line Line inside of file that called _d_HookTraceImpl
string funcname Function that called _d_HookTraceImpl
Parameters!Hook parameters Parameters that will be used to call Hook
This function template needs be between the compiler and a much older runtime hook that bypassed safety, purity, and throwabilty checks. To prevent breaking existing code, this function template is temporarily declared @trusted pure until the implementation can be brought up to modern D expectations.
enum auto isNoThrow(alias F);
Check if the function F is calleable in a nothrow scope.
F Function that does not take any parameters
if the function is callable in a nothrow scope.
template isPostblitNoThrow(T)
Check if the type T's postblit is called in nothrow, if it exist
T Type to check
if the postblit is callable in a nothrow scope, if it exist. if it does not exist, return true.