gpt4 book ai didi

c++ - 替换参数包的包装器类型

转载 作者:行者123 更新时间:2023-11-28 05:42:43 24 4
gpt4 key购买 nike

下面的工作,但我觉得它必须是可能的,而无需诉诸于在函数返回类型上使用 decltype:

    typedef std::size_t SizeT;

template<SizeT... Indices> struct IndexList { };

template<SizeT... Is>
constexpr decltype(auto) ExtractIndices(std::integer_sequence<SizeT, Is...>)
{
return IndexList<Is...>{ };
}

template<SizeT N>
using MakeIndexSequence = std::make_integer_sequence<SizeT, N>;

template<SizeT N>
using MakeIndexList = decltype(ExtractIndices(MakeIndexSequence<N>{ }));

是否有更好的方法来更改参数包的“包装器类型”?

最佳答案

因为您只是为 std::index_sequence 添加了别名,所以您可以更明确地这样做:

template<SizeT... Indices> 
using IndexList = std::index_sequence<Indices...>;

template<SizeT N>
using MakeIndexList = std::make_index_sequence<N>;

虽然更喜欢只使用标准库中的内容。介绍自己的名字会令人困惑。

关于c++ - 替换参数包的包装器类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36815088/

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