双端队列有多种类型?

时间:2016-02-27 18:42:12

标签: c++ c++11 std

这是非Boost C ++ 11。对于两种不同类型的单个堆栈式容器,最佳选择是什么?像这个想象的场景一样起作用的东西:

template<typename T>
deque <pair<T, v8::Local<v8::Value>>> my_queue;

uint32_t aUint = ...;
v8::Local<v8::Value> value1 = ...;
v8::Local<v8::String> aString = ...;
v8::Local<v8::Value> value2 = ...;

my_queue.push_back(make_pair(aUint, value1));
my_queue.push_back(make_pair(aString, value2));

1 个答案:

答案 0 :(得分:1)

以下代码使用std::experimental::any执行此操作。

#include <experimental/any>                                                                                                                                                                                  
#include <deque>

int main()
{
    std::deque<std::experimental::any> d;
    d.push_back(1);
    d.push_back(std::make_pair(3, 2));
}

我真的不知道这是否符合您的要求(显然不是严格的标准c ++ 11)。 FWIW,它使用g ++ - 5与--std=c++1y构建。