From 5a30a0c50376b7575cc6bc329af521ad20e09568 Mon Sep 17 00:00:00 2001 From: Eisenwave Date: Sun, 13 Aug 2023 02:19:29 +0200 Subject: [PATCH] [over.ics.list] expand example 5, fix inconsistent spacing --- source/overloading.tex | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/source/overloading.tex b/source/overloading.tex index 52de08ebe9..5e4d0e89f6 100644 --- a/source/overloading.tex +++ b/source/overloading.tex @@ -2448,19 +2448,21 @@ \begin{codeblock} void f(std::initializer_list); f( {} ); // OK, \tcode{f(initializer_list)} identity conversion -f( {1,2,3} ); // OK, \tcode{f(initializer_list)} identity conversion -f( {'a','b'} ); // OK, \tcode{f(initializer_list)} integral promotion +f( {1, 2, 3} ); // OK, \tcode{f(initializer_list)} identity conversion +f( {'a', 'b'} ); // OK, \tcode{f(initializer_list)} integral promotion f( {1.0} ); // error: narrowing struct A { A(std::initializer_list); // \#1 A(std::initializer_list>); // \#2 - A(std::initializer_list); // \#3 + A(std::initializer_list); // \#3 + A(std::initializer_list); // \#4 }; -A a{ 1.0,2.0 }; // OK, uses \#1 +A a{ 1.0, 2.0 }; // OK, uses \#1, not \#2 +A b{ a }; // OK, uses \#3, not the implicitly-defined copy constructor void g(A); -g({ "foo", "bar" }); // OK, uses \#3 +g({ "foo", "bar" }); // OK, uses \#4 typedef int IA[3]; void h(const IA&);