英語版
このページの英語版を見る
std.container.util
このモジュールには、コンテナで使用されるいくつかの一般的なユーティリティが含まれている。
このモジュールは、のサブモジュールである std.container。
License:
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at boost.org/LICENSE_1_0.txt).
Authors:
- template
make
(T) if (is(T == struct) || is(T == class)) - 初期化されたオブジェクトを返す。この関数は主に、 構造体とクラスの間の構築の違いをなくすためにある。この関数により、コードは 構築中の型が構造体かクラスかを気にしなくて済む。Examples:
import std.algorithm.comparison : equal; import std.container; auto arr = make!(Array!int)([4, 2, 3, 1]); assert(equal(arr[], [4, 2, 3, 1])); auto rbt = make!(RedBlackTree!(int, "a > b"))([4, 2, 3, 1]); assert(equal(rbt[], [4, 3, 2, 1])); alias makeList = make!(SList!int); auto slist = makeList(1, 2, 3); assert(equal(slist[], [1, 2, 3]));
- template
make
(alias Container, Args...) if (!is(Container)) - 汎用コンテナを構築するための便利な関数。Examples: 無限の範囲からの構築を禁止するcontainercontainer無限の範囲からの構築を禁止する
import std.container.array : Array; import std.range : only, repeat; import std.range.primitives : isInfinite; static assert(__traits(compiles, { auto arr = make!Array(only(5)); })); static assert(!__traits(compiles, { auto arr = make!Array(repeat(5)); }));
Examples:range範囲import std.algorithm.comparison : equal; import std.container.array, std.container.rbtree, std.container.slist; import std.range : iota; auto arr = make!Array(iota(5)); assert(equal(arr[], [0, 1, 2, 3, 4])); auto rbtmax = make!(RedBlackTree, "a > b")(iota(5)); assert(equal(rbtmax[], [4, 3, 2, 1, 0])); auto rbtmin = make!RedBlackTree(4, 1, 3, 2); assert(equal(rbtmin[], [1, 2, 3, 4])); alias makeList = make!SList; auto list = makeList(1, 7, 42); assert(equal(list[], [1, 7, 42]));
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.109.1
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku