|
2 | 2 | <feed xmlns="http://www.w3.org/2005/Atom"> |
3 | 3 | <title>cpprefjp - C++日本語リファレンス</title> |
4 | 4 | <link href="https://cpprefjp.github.io" /> |
5 | | - <updated>2025-05-18T14:42:16.463662</updated> |
6 | | - <id>4e85c625-0314-440e-b01c-18dfd12a9d91</id> |
| 5 | + <updated>2025-05-19T07:13:24.422449</updated> |
| 6 | + <id>d4d7c307-be42-40fd-bee2-bce4cb49446e</id> |
7 | 7 |
|
8 | 8 |
|
| 9 | + <entry> |
| 10 | + <title>try_emplace -- map::try_emplace : 要件を整理 #1189</title> |
| 11 | + <link href="https://cpprefjp.github.io/reference/map/map/try_emplace.html"/> |
| 12 | + <id>0036d1d6b893ee18fda33535962addd83a622a66:reference/map/map/try_emplace.md</id> |
| 13 | + <updated>2025-05-19T16:09:50+09:00</updated> |
| 14 | + |
| 15 | + <summary type="html"><pre><code>diff --git a/reference/map/map/try_emplace.md b/reference/map/map/try_emplace.md |
| 16 | +index 498af971b..c6b4b178b 100644 |
| 17 | +--- a/reference/map/map/try_emplace.md |
| 18 | ++++ b/reference/map/map/try_emplace.md |
| 19 | +@@ -57,10 +57,10 @@ iterator |
| 20 | + ## テンプレートパラメータ制約 |
| 21 | + - (1)、(3)、(5)、(6) : `value_type` は、[`piecewise_construct`](/reference/utility/piecewise_construct_t.md), [`forward_as_tuple`](/reference/tuple/forward_as_tuple.md)`(k)`, [`forward_as_tuple`](/reference/tuple/forward_as_tuple.md)`(`[`forward`](/reference/utility/forward.md)`&lt;Args&gt;(args)...)` から `map` に直接構築可能であること |
| 22 | + - (2)、(4) : `value_type` は、[`piecewise_construct`](/reference/utility/piecewise_construct_t.md), [`forward_as_tuple`](/reference/tuple/forward_as_tuple.md)`(`[`move`](/reference/utility/move.md)`(k))`, [`forward_as_tuple`](/reference/tuple/forward_as_tuple.md)`(`[`forward`](/reference/utility/forward.md)`&lt;Args&gt;(args)...)` から `map` に直接構築可能であること |
| 23 | +-- (5), (6) : `key_compare::is_transparent` が妥当な式であること |
| 24 | +-- (5) : 以下のすべてを満たすこと: |
| 25 | +- - [`is_convertible_v`](/reference/type_traits/is_convertible.md)`&lt;K&amp;&amp;, const_iterator&gt; == false` |
| 26 | +- - [`is_convertible_v`](/reference/type_traits/is_convertible.md)`&lt;K&amp;&amp;, iterator&gt; == false` |
| 27 | ++- (5)、(6) : |
| 28 | ++ - `key_compare::is_transparent` が妥当な式であること |
| 29 | ++ - [`is_convertible_v`](/reference/type_traits/is_convertible.md)`&lt;K&amp;&amp;, const_iterator&gt; == false`であること |
| 30 | ++ - [`is_convertible_v`](/reference/type_traits/is_convertible.md)`&lt;K&amp;&amp;, iterator&gt; == false`であること |
| 31 | + |
| 32 | + なお、規格に記載はないが、`hint` は [`emplace_hint`](emplace_hint.md) と同様、コンテナの有効な読み取り専用イテレータである必要があるものと思われる。 |
| 33 | + |
| 34 | +</code></pre></summary> |
| 35 | + |
| 36 | + <author> |
| 37 | + <name>Akira Takahashi</name> |
| 38 | + <email>faithandbrave@gmail.com</email> |
| 39 | + </author> |
| 40 | + </entry> |
| 41 | + |
9 | 42 | <entry> |
10 | 43 | <title>try_emplace -- map::try_emplace : 要件を修正 #1189</title> |
11 | 44 | <link href="https://cpprefjp.github.io/reference/map/map/try_emplace.html"/> |
@@ -918,148 +951,6 @@ index f43067b02..7bb94f5dd 100644 |
918 | 951 | - [N4279 Improved insertion interface for unique-key maps (Revision 2.3)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279.html) |
919 | 952 | +- [P2363R5: Extending associative containers with the remaining heterogeneous overloads](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2363r5.html) |
920 | 953 | + - C++26で`template &lt;class K&gt;`のバージョンが追加された |
921 | | -</code></pre></summary> |
922 | | - |
923 | | - <author> |
924 | | - <name>Akira Takahashi</name> |
925 | | - <email>faithandbrave@gmail.com</email> |
926 | | - </author> |
927 | | - </entry> |
928 | | - |
929 | | - <entry> |
930 | | - <title>at -- map::operator[ ]とat : C++26対応として異種混合ルックアップに対応 #1189</title> |
931 | | - <link href="https://cpprefjp.github.io/reference/map/map/at.html"/> |
932 | | - <id>c036064051b5a5985af8b5f9777772c65eb8016f:reference/map/map/at.md</id> |
933 | | - <updated>2025-05-15T15:31:22+09:00</updated> |
934 | | - |
935 | | - <summary type="html"><pre><code>diff --git a/reference/map/map/at.md b/reference/map/map/at.md |
936 | | -index 16eccbdf4..fc8ffd247 100644 |
937 | | ---- a/reference/map/map/at.md |
938 | | -+++ b/reference/map/map/at.md |
939 | | -@@ -6,23 +6,49 @@ |
940 | | - * cpp11[meta cpp] |
941 | | - |
942 | | - ```cpp |
943 | | --T&amp; at(const key_type&amp; x); |
944 | | --const T&amp; at(const key_type &amp; x) const; |
945 | | -+T&amp; at(const key_type&amp; x); // (1) C++11 |
946 | | -+const T&amp; at(const key_type &amp; x) const; // (2) C++11 |
947 | | -+ |
948 | | -+template&lt;class K&gt; |
949 | | -+mapped_type&amp; at(const K&amp; x); // (3) C++26 |
950 | | -+template&lt;class K&gt; |
951 | | -+const mapped_type&amp; at(const K&amp; x) const; // (4) C++26 |
952 | | - ``` |
953 | | - |
954 | | - ## 概要 |
955 | | - 指定したキーを持つ要素を取得する。 |
956 | | --要素を取り出す際にキーの存在チェックをする。 |
957 | | -+[`operator[]`](op_at.md)と違って、要素を取り出す際にキーに対応する値がなければ例外が送出される。 |
958 | | -+ |
959 | | -+- (1), (2) : クラスのテンプレートパラメータ`key_type`型のキーに対応する要素を取得する |
960 | | -+- (3), (4) : `key_type`と比較可能な`K`型のキーに対応する要素を取得する |
961 | | -+ |
962 | | -+ |
963 | | -+## テンプレートパラメータ制約 |
964 | | -+- (3), (4) : `key_compare::is_transparent` が妥当な式であること |
965 | | -+ |
966 | | -+ |
967 | | -+## 事前条件 |
968 | | -+- (3), (4) : [`find`](find.md)`(x)`が妥当な式であり、定義された動作をすること |
969 | | - |
970 | | - |
971 | | - ## 戻り値 |
972 | | --キー`x`に対応する値を返す。対応する要素が存在しないときは、[`out_of_range`](/reference/stdexcept.md)例外を投げる。 |
973 | | -+キー`x`に対応する値を返す。 |
974 | | - |
975 | | - |
976 | | - ## 計算量 |
977 | | - 要素数に対して対数時間 |
978 | | - |
979 | | - |
980 | | -+## 例外 |
981 | | -+- 対応する要素が存在しない場合、[`std::out_of_range`](/reference/stdexcept.md)例外を送出する |
982 | | -+ |
983 | | -+ |
984 | | -+## 備考 |
985 | | -+- (3), (4) : |
986 | | -+ - `is_transparent`は、標準ライブラリの[`std::less`](/reference/functional/less.md)、[`std::greater`](/reference/functional/greater.md)といった関数オブジェクトの、`void`に対する特殊化で定義される。それ以外のテンプレートパラメータで`is_transparent`が定義されないのは、互換性のためである。 |
987 | | -+ - これらのオーバーロードは、`map&lt;string, int&gt;`のようなコンテナに対し、検索操作で文字列リテラルを渡した際に、キー型の一時オブジェクトが生成されるコストを減らすためにある。 |
988 | | -+ |
989 | | -+ |
990 | | - ## 例 |
991 | | - ```cpp example |
992 | | - #include &lt;iostream&gt; |
993 | | -@@ -78,4 +104,6 @@ exception std::out_of_range |
994 | | - |
995 | | - ## 参照 |
996 | | - - [LWG Issue 464. Suggestion for new member functions in standard containers](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#464) |
997 | | -- |
998 | | -+## 参照 |
999 | | -+- [P2363R5 Extending associative containers with the remaining heterogeneous overloads](http://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2363r5.html) |
1000 | | -+ - C++26で`template &lt;class K&gt;`のバージョンが追加された |
1001 | | -</code></pre></summary> |
1002 | | - |
1003 | | - <author> |
1004 | | - <name>Akira Takahashi</name> |
1005 | | - <email>faithandbrave@gmail.com</email> |
1006 | | - </author> |
1007 | | - </entry> |
1008 | | - |
1009 | | - <entry> |
1010 | | - <title>operator[] -- map::operator[ ]とat : C++26対応として異種混合ルックアップに対応 #1189</title> |
1011 | | - <link href="https://cpprefjp.github.io/reference/map/map/op_at.html"/> |
1012 | | - <id>c036064051b5a5985af8b5f9777772c65eb8016f:reference/map/map/op_at.md</id> |
1013 | | - <updated>2025-05-15T15:31:22+09:00</updated> |
1014 | | - |
1015 | | - <summary type="html"><pre><code>diff --git a/reference/map/map/op_at.md b/reference/map/map/op_at.md |
1016 | | -index 99d6e53ee..eb7b29d3c 100644 |
1017 | | ---- a/reference/map/map/op_at.md |
1018 | | -+++ b/reference/map/map/op_at.md |
1019 | | -@@ -6,12 +6,23 @@ |
1020 | | - |
1021 | | - ```cpp |
1022 | | - T&amp; operator[](const key_type&amp; x); // (1) C++03 |
1023 | | -+ |
1024 | | - T&amp; operator[](key_type&amp;&amp; x); // (2) C++11 |
1025 | | -+ |
1026 | | -+template &lt;class K&gt; |
1027 | | -+T&amp; operator[](K&amp;&amp; x); // (3) C++26 |
1028 | | - ``` |
1029 | | - |
1030 | | - ## 概要 |
1031 | | - 指定したキーを持つ要素を取得する。対応する要素が存在しない場合は生成して返す。 |
1032 | | - |
1033 | | -+- (1), (2) : クラスのテンプレートパラメータ`key_type`型のキーに対応する要素を取得する |
1034 | | -+- (3) : `key_type`と比較可能な`K`型のキーに対応する要素を取得する |
1035 | | -+ |
1036 | | -+ |
1037 | | -+## テンプレートパラメータ制約 |
1038 | | -+- (3) : `key_compare::is_transparent` が妥当な式であること |
1039 | | -+ |
1040 | | - |
1041 | | - ## 戻り値 |
1042 | | - キー`x`に対応する値を返す。対応する要素が存在しない場合は、要素を値初期化して参照を返す。 |
1043 | | -@@ -21,6 +32,12 @@ T&amp; operator[](key_type&amp;&amp; x); // (2) C++11 |
1044 | | - 要素数に対して対数時間 |
1045 | | - |
1046 | | - |
1047 | | -+## 備考 |
1048 | | -+- (3) : |
1049 | | -+ - `is_transparent`は、標準ライブラリの[`std::less`](/reference/functional/less.md)、[`std::greater`](/reference/functional/greater.md)といった関数オブジェクトの、`void`に対する特殊化で定義される。それ以外のテンプレートパラメータで`is_transparent`が定義されないのは、互換性のためである。 |
1050 | | -+ - これらのオーバーロードは、`map&lt;string, int&gt;`のようなコンテナに対し、検索操作で文字列リテラルを渡した際に、キー型の一時オブジェクトが生成されるコストを減らすためにある。 |
1051 | | -+ |
1052 | | -+ |
1053 | | - ## 例 |
1054 | | - ```cpp example |
1055 | | - #include &lt;iostream&gt; |
1056 | | -@@ -56,3 +73,6 @@ a |
1057 | | - | [`insert`](insert.md) | 要素を挿入する | |
1058 | | - |
1059 | | - |
1060 | | -+## 参照 |
1061 | | -+- [P2363R5 Extending associative containers with the remaining heterogeneous overloads](http://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2363r5.html) |
1062 | | -+ - C++26で`template &lt;class K&gt;`のバージョンが追加された |
1063 | 954 | </code></pre></summary> |
1064 | 955 |
|
1065 | 956 | <author> |
|
0 commit comments