std::get from teplate argument

std::get from teplate argument

本文关键字:argument teplate get std from      更新时间:2023-10-16

您能否解释一下或给出一个链接来解释:为什么这样做:

template <int i, int j, class T>
auto to_pair(T tuple) -> decltype(std::make_pair(std::get<i>(tuple), std::get<j>(tuple)))
{
    return std::make_pair(std::get<i>(tuple), std::get<j>(tuple));
}

这不行吗?

template <class T>
auto to_pair(int i, int j, T tuple) -> decltype(std::make_pair(std::get<i>(tuple), std::get<j>(tuple)))
{
    return std::make_pair(std::get<i>(tuple), std::get<j>(tuple));
}

我的意思是 int 类型是模板参数专用化和 int 参数作为通用参数有什么区别?

我的意思是 int 类型是模板参数专用化和 int 参数作为通用参数有什么区别?

一个在编译时定义,另一个在运行时定义。

运行时值不能用作模板参数。因此,第二种情况不起作用。