我编写了一个异步作业队列类,它已经很好地工作了很长时间。它使用 astd::vector
作为基础集合来保存作业,然后按照您的预期处理它们。当我添加一份工作时,它会push_back
对此进行处理vector
。
最近我决定要模板化它使用的底层集合类型以及我编写它的方式,这应该非常简单。现在这样声明:
template<typename J, typename CollectionT = std::vector<J>>
class async_jobqueue
{
public:
只有一个障碍,对于矢量类型的容器,我想将东西推到集合的末尾并调用push_back
,对于设置类型的容器,我想调用insert
。我怎样才能做出关于调用哪个编译的决定?或者有没有我可以使用的方便的适配器?