英語版
このページの英語版を見る
core.internal.array.construction
このモジュールには、動的配列を構築するためのコンパイラサポートが含まれている
License:
Distributed under the
Boost Software License 1.0.
(See accompanying file LICENSE)
- @trusted Tarr
_d_arrayctor
(Tarr : T[], T)(return scope Tarrto
, scope Tarrfrom
, char*makeWeaklyPure
= null); - 同じ要素型の別の配列から配列の初期化(代入ではない)を行う。Parameters:
Tarr to
どの配列を初期化するか Tarr from
配列を初期化するデータ。 char* makeWeaklyPure
この関数の目的は、関数が強く純粋になり、最適化されなくなる危険を防ぐことである。 その目的は、関数が強く純粋になり、最適化されなくなる危険を防ぐことである。 Returns:作成され初期化された配列to
Bugs:この"関数テンプレート化された関数"は、安全性チェックをバイパスする、かなり古いランタイムフックから移植されたものである、 を迂回する。既存のコードを壊さないようにするため、この関数テンプレートは、実装が最新のD言語に対応するまで、一時的に。 を一時的に@trusted 。 第3パラメータは使われることはないが、関数を強く純粋ではなく弱く純粋に扱うために必要である。 関数を強く純粋ではなく弱く純粋に扱うために必要である。 これが必要なのは、以下のような構文が によって無視されるからである。_d_arrayctor
への呼び出しが純粋であることを意味するからである。 への呼び出しは何の効果も持たない(副作用もない)。_d_arrayctor
への呼び出しは何の効果も持たない(副作用もなく というのも、a の内容が実際に変更されているにもかかわらず、この呼び出しには何の影響もない(副作用もなく、戻り値も無視される)ことを意味するからである。 const S[2] b; const S[2] a = b; // これはd_arrayctor(a, b)に格下げされる。 - @trusted void
_d_arraysetctor
(Tarr : T[], T)(scope Tarrp
, ref scope Tvalue
); - 配列の構築を行う。 ti[count] p = value;Parameters:
Tarr p
どの配列を初期化するか T value
どのデータで配列を構築するか Bugs:この"関数テンプレート化された関数"は、安全性をバイパスするかなり古いランタイムフックから移植されたものである、 をバイパスする古いランタイムフックから移植された。既存のコードを壊さないようにするため、この関数テンプレート を一時的に@trusted 。 - pure nothrow @trusted T[]
_d_newarrayUPureNothrow
(T)(size_tlength
, boolisShared
= false);
@trusted T[]_d_newarrayT
(T)(size_tlength
, boolisShared
= false); - ガベージコレクタで配列をアロケートする。また もしその型にイニシャライザーがあれば、要素もイニシャライズする。そうでない場合は、配列をゼロ初期化しない。3つのバリエーションがある: _d_newarrayU 要素を初期化しない
_d_newarrayT
要素を0に初期化するか、イニシャライザに基づいて初期化する。Parameters:size_t length
. length
に基づいて初期化される。Returns:新しく確保された配列 - @trusted Tarr
_d_newarraymTX
(Tarr : U[], T, U)(size_t[]dims
, boolisShared
= false); - 新しい多次元配列を作成する。要素の型にイニシャライザがある場合は、要素もイニシャライズする。 そうでない場合は、配列をゼロ初期化しない。
void main() { S[][] s = new S[][](2, 3) // 低下: S[] s = _d_newarraymTX!(S[][], S)([2, 3]); }
Parameters:size_t[] dims
各次元の配列の長さを指定する。 bool isShared
配列を共有するかどうか。 Returns:新しく確保された配列
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku