是否可以用于std::fill
初始化非 POD 类型的数组?
文档说std::fill
用于operator=
初始化数组而不是放置副本构造。然而,据我所知,当在未初始化的空间上调用赋值运算符时,它实际上并没有机会释放任何当前内存。
例子:
struct NonPod
{
std::string myStr;
};
NonPod arr[10];
NonPod prototype;
NonPod * ptr = &arr[0];
std::fill_n(ptr, 10, prototype);