英語版
このページの英語版を見る

core.builtins

そうでなければ逆効果になったり、実装が難しくなったりする機能へのアクセスを提供するために、コンパイラは次のような機能を提供している。 コンパイラは、ビルトイン(イントロインとも呼ばれる)のセットからなるインターフェイスを提供する。 通常の関数のように呼び出すことができる組み込み関数(イント リニックスとも呼ばれる)のセットで構成されるインターフェースを提供する。
このモジュールは、すべてのDコンパイラに共通なビルトイン(フロントエンドが提供するもの)と (フロントエンドによって提供されるもの)と、ホスト・コンパイラーに固有のもの、つまり LLVMまたはGCCに特化したもの (ldc.intrinsicsgcc.builtinsはそれぞれ一般にインポートされている)。 ホスト固有のintrinsicsをここで確実にリストアップすることはできない。 関連するバックエンド、すなわち GCCと LLVMである。すべてのビルトインが必ずしもサポートされているわけではないことに注意すべきである。 リストアップされたすべてのビルドインが必ずしもホスト・コンパイラでサポートされているわけではないことに注意されたい。 を提出してほしい。
このモジュールを使うことで、あるビルトインを使うために必要な条件付きコンパイルの量を減らすことができる。 を減らすことができる。例えば、プリフェッチを使用するターゲットに依存しない関数を書くには、次のように書くことができる。 を書くには、次のように書くことができる:
float usePrefetch(float[] x)
{
    // 2つの(バージョン管理された)インポートではなく、1つのインポート文だけが必要である
    import core.builtins;
    version (GNU)
        __builtin_prefetch(x.ptr);
    version (LDC)
        
/+
            興味のある方のために: 0、3、1は、`x`が読み取り専用(0)、
            頻繁に使用される(3)、データキャッシュに取得されるべき(1)であることを意味する。
        +/
        llvm_prefetch(x.ptr, 0, 3, 1);
    const doMath = blahBlahBlah;
    return doMath;
}
Authors:
Walter Bright

ソース core/builtins.d

pure nothrow @nogc @safe void __ctfeWrite(scope const(char)[] s);
CTFE中に sstderr に書き込む(実行時には何もしない)。