gpt4 book ai didi

c++ - 在可变参数模板中使用大括号括起来的初始值设定项列表?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:08 24 4
gpt4 key购买 nike

我正在尝试在可变参数模板函数中使用大括号括起来的初始化列表,但编译器提示...是我要求太多还是我做错了什么?

最好用例子来证明这一点:

struct Bracy
{
Bracy(int i, int j)
{
}
};

struct Test
{

void consumeOne(int i)
{
}

void consumeOne(const Bracy & bracy)
{
}

void consume()
{
}

template<typename T, typename ...Values>
void consume(const T & first, Values... rest)
{
consumeOne(first);
consume(rest...);
}

template<typename ...Values>
Test(Values... values)
{
consume(values...);
}
};

void testVariadics()
{
Test(7,{1,2}); //I'd like {1,2} to be passed to consumeOne(const Bracy & bracy)
}

海湾合作委员会 (4.7) 说:

main.cpp:45:14: error: no matching function for call to ‘Test::Test(int, <brace-enclosed initializer list>)’

最佳答案

不能转发大括号括起来的初始化列表,所以很不幸,你运气不好。

关于c++ - 在可变参数模板中使用大括号括起来的初始值设定项列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11921335/

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