gpt4 book ai didi

c++ - 用 std::array 替换 []

转载 作者:太空狗 更新时间:2023-10-29 21:16:09 25 4
gpt4 key购买 nike

有没有办法替代VECTOR_TYPE::*memberlist[sizeof...(SCALAR)]通过 std::array< ??? >

struct myVec
{
double x;
double y;
};

template < typename VECTOR_TYPE, typename SCALAR_TYPE, SCALAR_TYPE VECTOR_TYPE::*...SCALAR >
struct vector_template : VECTOR_TYPE
{
SCALAR_TYPE & operator[]( size_t inx )
{
constexpr SCALAR_TYPE VECTOR_TYPE::*memberlist[sizeof...(SCALAR)]{ SCALAR... };
return this->*(memberlist[inx]);
}
};

int main()
{
vector_template < myVec, double, &myVec::x, &myVec::y > vec;

vec[0] = 0.0;
vec[1] = 0.0;

return 0;
}

最佳答案

当然。 T x[N]{args...}可以替换为std::array<T,N> x{args...} .在这种情况下:

constexpr std::array<SCALAR_TYPE VECTOR_TYPE::*, sizeof...(SCALAR) >
memberlist{{SCALAR...}};

无论哪种方式,在这种情况下都不会产生任何影响。

关于c++ - 用 std::array 替换 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35925702/

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