gpt4 book ai didi

C++:将 Args && ... _args 传递给嵌套列表的正确方法?

转载 作者:行者123 更新时间:2023-11-30 01:05:21 26 4
gpt4 key购买 nike

假设我有一个包含列表的结构:

struct etc {
list<T> my_list;

}

现在,我想在 etc 级别包装列表的 'emplace' 方法以避免以下问题:

etc.my_list.emplace(_Args&&..._args) <-- bad

etc.emplace(_Args&&..._args) <--- good

但是,遇到了一个问题:我不知道如何定义我的 emplace 方法,以便我能够将任意参数列表传递给 my_list.emplace_front(...) : (伪代码)

struct etc {
list<T> my_list;

void emplace(what do I do here?){
my_list.emplace_front(and how do I pass it here?);
}
}

最佳答案

它必须是一个接受类型参数包的模板。就像定义std::list的emplace成员一样。

该参数包用于指定 emplace 接受一堆转发引用,然后将其馈送到 my_list.emplace

template<typename... Ts>
void emplace(Ts&&... ts){
my_list.emplace(std::forward<Ts>(ts)...);
}

这样就可以了。模板参数推导将推导 Ts,转发引用与 std::forward 结合使用时,将确保参数的值类别向前传递。

关于C++:将 Args && ... _args 传递给嵌套列表的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48591054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com