|
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 | + |
| 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 |
| - |
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 |
| - |
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