gpt4 book ai didi

c++ - 推断可变模板参数包元素的类型

转载 作者:太空宇宙 更新时间:2023-11-04 16:02:51 24 4
gpt4 key购买 nike

我有以下功能:

template <typename T, T... Ts> T random_value(default_random_engine &rnd)
{
static constexpr T values [] { Ts... };
static uniform_int_distribution<size_t> distribution(0, sizeof...(Ts) - 1);
return values[distribution(rnd)];
}

这就是所谓的:

MyEnum val = random_value<MyEnum, MyEnum::val1, MyEnum::val2, MyEnum::val3>(rnd);

是否可以以不需要明确指定 T 的方式重新定义它?所以它被称为:

MyEnum val = random_value<MyEnum::val1, MyEnum::val2, MyEnum::val3>(rnd);

最佳答案

目前还没有,但 C++17 中添加的新 auto 模板参数功能将对此有所帮助。参见 Advantages of auto in template parameters in C++17

关于c++ - 推断可变模板参数包元素的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40412548/

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