我有一个类似于以下的代码:
namespace mine
{
template<class T>
using _vector = std::vector<T, my_allocator<T>>;
template<class T>
class myvector : public _vector<T>{};
};
在大多数情况下,这可以作为我自己的 std::vector 替代品使用,但在使用普通 std::vector 列表初始化它时,它并不能很好地工作:
#include "myvector.h"
void foo(void)
{
std::vector<int> vi = { 1, 2, 3 };
mine::myvector<int> mvi = { { 1, 2, 3 } };
}
请注意,我使用了双花括号来编译它。那么,我在这里缺少什么?而且,更重要的是,我该怎么做才能像使用普通的 std::vector 一样初始化 mine::myvector?