我很惊讶地发现这个简单的例子不能编译:
#include <memory>
#include <vector>
#include <array>
using vt = std::vector<std::unique_ptr<int>>;
using at = std::array<std::unique_ptr<int>,1>;
int main(){
auto a = at{std::make_unique<int>(10)}; //compile fine
auto v = vt{std::make_unique<int>(10)}; //error
}
为什么没有矢量构造函数作为参数类型initializer_list<T>&&
?