From 94b0c912176e85c536b6a3d306995ee9da3c4590 Mon Sep 17 00:00:00 2001 From: g-suizu Date: Mon, 3 Jul 2023 16:21:38 +0900 Subject: [PATCH] =?UTF-8?q?=E5=8F=A4=E3=81=84=E8=A1=A8=E8=A8=98=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 単一要素の初期化リストをautoで受けた場合が、最新の仕様とこなっていて、 https://cpprefjp.github.io/lang/cpp17/new_rules_for_auto_deduction_from_braced-init-list.html と矛盾しているので修正してもらいたい --- lang/cpp11/initializer_lists.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/cpp11/initializer_lists.md b/lang/cpp11/initializer_lists.md index 30235501ff..edafb40052 100644 --- a/lang/cpp11/initializer_lists.md +++ b/lang/cpp11/initializer_lists.md @@ -258,11 +258,11 @@ int main() //auto x2 = {}; // コンパイルエラー!x2の型を推論できない ``` -- 単一要素の初期化子リストを`auto`で受けた場合、C++11では`std::initializer_list`型に推論されるが、C++17では`T`型に推論されるよう仕様が変更されるので注意 +- 単一要素の初期化子リストを`auto`で受けた場合、C++11では`std::initializer_list`型に推論されるが、C++17では直接初期化の場合`T`型に推論されるよう仕様が変更されるので注意 ```cpp - auto x = {1}; // C++11ではxの型はstd::initializer_list。 - // C++17ではxの型はintになる + auto x{1}; // C++17ではxの型はintになる + auto x = {1}; // C++11,17共に、xの型はstd::initializer_list。 ``` - 関数テンプレートのパラメータとして初期化子リストを受けとった場合は、`std::initializer_list`型には推論されない