是否可以使用boost :: compute复制自定义结构数组? E.g。
struct A { float a; };
struct AB { float a; float b; };
BOOST_COMPUTE_ADAPT_STRUCT(A, A, (a))
BOOST_COMPUTE_ADAPT_STRUCT(AB, AB, (a, b))
boost::compute::vector<A> va(100);
boost::compute::vector<AB> vab(100);
boost::compute::copy(va.begin(), va.end(), vab.begin());
答案 0 :(得分:4)
是的,请查看Boost.Compute测试中的this example。请记住:
由于主机编译器和。之间的struct padding不同 设备编译器,BOOST_COMPUTE_ADAPT_STRUCT()宏需要 适配的结构被打包(即成员之间没有填充字节)。