From Jason Turner

[expr.ass]

Diff to HTML by rtfpessoa

tmp/tmpq7geew3v/{from.md → to.md} RENAMED
@@ -59,16 +59,16 @@ may be aliased in general. See  [[basic.lval]].
59
 
60
  A *braced-init-list* may appear on the right-hand side of
61
 
62
  - an assignment to a scalar, in which case the initializer list shall
63
  have at most a single element. The meaning of `x={v}`, where `T` is
64
- the scalar type of the expression `x`, is that of `x=T(v)` except that
65
- no narrowing conversion ([[dcl.init.list]]) is allowed. The meaning
66
- of `x={}` is `x=T()`.
67
- - an assignment defined by a user-defined assignment operator, in which
68
- case the initializer list is passed as the argument to the operator
69
- function.
70
 
71
  ``` cpp
72
  complex<double> z;
73
  z = { 1,2 }; // meaning z.operator=({1,2\)}
74
  z += { 1, 2 }; // meaning z.operator+=({1,2\)}
 
59
 
60
  A *braced-init-list* may appear on the right-hand side of
61
 
62
  - an assignment to a scalar, in which case the initializer list shall
63
  have at most a single element. The meaning of `x={v}`, where `T` is
64
+ the scalar type of the expression `x`, is that of `x=T{v}`. The
65
+ meaning of `x={}` is `x=T{}`.
66
+ - an assignment to an object of class type, in which case the
67
+ initializer list is passed as the argument to the assignment operator
68
+ function selected by overload resolution ([[over.ass]],
69
+ [[over.match]]).
70
 
71
  ``` cpp
72
  complex<double> z;
73
  z = { 1,2 }; // meaning z.operator=({1,2\)}
74
  z += { 1, 2 }; // meaning z.operator+=({1,2\)}