英語版
このページの英語版を見る
core.builtins
そうでなければ逆効果になったり、実装が難しくなったりする機能へのアクセスを提供するために、コンパイラは次のような機能を提供している。
コンパイラは、ビルトイン(イントロインとも呼ばれる)のセットからなるインターフェイスを提供する。
通常の関数のように呼び出すことができる組み込み関数(イント リニックスとも呼ばれる)のセットで構成されるインターフェースを提供する。
このモジュールは、すべてのDコンパイラに共通なビルトイン(フロントエンドが提供するもの)と
(フロントエンドによって提供されるもの)と、ホスト・コンパイラーに固有のもの、つまり
LLVMまたはGCCに特化したもの (ldc.intrinsics と gcc.
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; }
License:
Authors:
Walter Bright
ソース core/builtins.d
- pure nothrow @nogc @safe void
__ctfeWrite
(scope const(char)[]s
); - CTFE中に
s
をstderr に書き込む(実行時には何もしない)。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku