: This rule states, in part, that there shall not be any subtle differences in the semantics
of initialization versus assignment
. This gives an implementation
considerable flexibility in how arrays are initialized
.[
Example: An implementation is allowed to initialize a
valarray
by allocating storage using the
new
operator (which
implies a call to the default constructor for each element) and then
assigning each element its value
. Or the implementation can allocate raw
storage and use the copy constructor to initialize each element
. —
end example ]
If the distinction between initialization and assignment is important
for a class, or if it fails to satisfy any of
the other conditions listed above, the programmer should use
vector (
[vector]) instead of
valarray
for that class
. —
end note