gpt4 book ai didi

c++ - 如何在编译时切换/选择类型?

转载 作者:IT老高 更新时间:2023-10-28 12:30:45 25 4
gpt4 key购买 nike

有没有一种标准方法可以让我在 编译时 在 c++11 中的无符号索引上选择类型?

例如:

using type_0 = static_switch<0,T,U>;  // yields type T
using type_1 = static_switch<1,T,U>; // yields type U

如果有 variadic-template 版本,那将非常有用。

最佳答案

这应该可行:

template<std::size_t N, typename... T>
using static_switch = typename std::tuple_element<N, std::tuple<T...> >::type;

另一种方法:

template<std::size_t N, typename T, typename... Ts>
struct static_switch {
using type = typename static_switch<N - 1, Ts...>::type;
};
template<typename T, typename... Ts>
struct static_switch<0, T, Ts...> {
using type = T;
};

关于c++ - 如何在编译时切换/选择类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15404102/

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