假設我有一個模板函數,它接受各種向量(但由於各種原因,我不能在模板參數中提到這一點)。這裏就是我想要做的事情:在一個特定的位置插入一個新的,默認構造的元素,不知道它的類型:std ::向量插入不知道元素的類型
template <typename T>
void foo(T* v) {
v->insert(v->begin() + 5, decltype(v->at(0))());
}
這是不行的,但給你的是我想要一個想法去做。我也嘗試從std::vector
使用value_type
,但我也遇到了問題。任何想法如何解決這個問題?
您應該得到一個有希望描述問題的錯誤。例如,GCC說:「錯誤:引用類型的值初始化」 – Justin
'v.insert(v.begin()+ 5,decltype(v):: value_type());' –
@RichardCritten這不起作用,這是太多的工作;我們已經可以使用'T' – Justin