gpt4 book ai didi

c++ - 将具有可变参数构造函数的对象放置到 map 中

转载 作者:搜寻专家 更新时间:2023-10-31 01:04:51 25 4
gpt4 key购买 nike

我有一个带有可变模板构造函数的可 move (但不可复制)类型

struct foo
{
std::string a,b,c;
foo(foo const&)=delete;
foo(foo&&)=default;
template<typename...T>
for(T&&...);
};

我想将它添加到 map 中:

template<typename...T>
void add_foo(std::map<std::string,foo>&map, const char*name, T&&...args)
{
map.emplace(std::piecewise_construct, // how? perhaps like this?
std::forward_as_tuple(name), // no:
std::forward_as_tuple(args)); // error here
}

最佳答案

std::forward_as_tuple() 需要一个包,因此您可以使用 ... 简单地扩展 args:

map.emplace(std::piecewise_construct,
std::forward_as_tuple(name),
std::forward_as_tuple(args...));

关于c++ - 将具有可变参数构造函数的对象放置到 map 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23282022/

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