我有一个简单的函数,它应该构造几个对象并返回它们的向量,同时也转移所有权。我认为最好的方法就是返回对象的std::vector<std::unique_ptr<int>> (假设它们是int)。当我尝试以下功能时: auto first = std::make_unique<int>(,其结尾是:
xm
如果我有一个包装标准容器的模板,似乎我可以很容易地委托initializer_list构造函数:struct holder {
T t_;但它显然不适用于T,因为它是'int',或者任何其他没有嵌套value_type类型定义的类型。因此,我想使用某种enable_if或类似的技巧来使initializer_list构造函数不会被发出,除非T和T都定义了嵌套的value_type类型定义