如何访问integer_sequence的第n个值?

时间:2018-11-09 10:24:14

标签: c++ c++14

我想知道如何访问std::integer_sequence的第n个值。例如给定类型

using foo = std::integer_sequence<int, 3, 1, 4>;

我想要类似的东西

auto i = get<foo, 2>(); // i = 4

标准库中是否可以执行此操作?如果没有,如果我想让它在C ++ 14(而不是C ++ 17)中工作,是否需要采用迭代解决方案?

1 个答案:

答案 0 :(得分:13)

据我所知,没有这种内置方法,但是您可以在几行简洁的代码中实现它本身,而无需进行任何迭代:

const _performance = require('perf_hooks').performance;

someFunction= ()=>{

    _performance.mark('mark A')

    // Do something
    const a= Array(100000)
    var boo =true;
    a.forEach(el=>{
        boo = ! boo
    })

    _performance.mark('mark B')
    _performance.measure('total','mark B','mark A');

    var measurments = _performance.getEntriesByType('measure');

    measurments.forEach(measurment =>{
        console.log(measurment.name + ' ' + measurment.duration)
    } )

}

someFunction();

在此处查看其工作方式:https://godbolt.org/z/yAfMeg

可以使用更多代码将参数提升为模板参数(以匹配您的示例)。