I’d like to use Boost::Compute to do a calculation using two passed in values.
I’m using Visual Studio 2022 on Windows 10. I’m using vcpkg to pull in OpenCL and Boost::Compute.
Here is the code I have:
std::vector<int> hostVector1(10000);
std::vector<int> hostVector2(10000);
std::vector<int> hostResultVector(10000);
std::ranges::generate(hostVector1, GetRandomNumber);
std::ranges::generate(hostVector2, GetRandomNumber);
compute::vector<int> deviceVector1(hostVector1.size(), context);
compute::vector<int> deviceVector2(hostVector2.size(), context);
compute::vector<int> deviceResultVector(hostResultVector.size(), context);
compute::copy(hostVector1.begin(), hostVector1.end(), deviceVector1.begin(), commandQueue);
compute::copy(hostVector2.begin(), hostVector2.end(), deviceVector2.begin(), commandQueue);
compute::transform(deviceVector1.begin(), deviceVector1.end(), deviceVector2.begin(), deviceResultVector.begin(), _1 * _2, commandQueue);
compute::copy(deviceResultVector.begin(), deviceResultVector.end(), hostResultVector.begin(), commandQueue);
When I try to build, I get this error:
1>C:UsersDavesourcereposBoostComputeTestBoostComputeTestvcpkg_installedx64-windowsx64-windowsincludeboostcomputeiteratortransform_iterator.hpp(177,53): error C2039: 'get_buffer': is not a member of 'boost::compute::zip_iterator<boost::tuples::tuple<boost::compute::buffer_iterator<T>,boost::compute::buffer_iterator<T>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>'
1>C:UsersDavesourcereposBoostComputeTestBoostComputeTestvcpkg_installedx64-windowsx64-windowsincludeboostcomputeiteratortransform_iterator.hpp(177,53): error C2039: with
1>C:UsersDavesourcereposBoostComputeTestBoostComputeTestvcpkg_installedx64-windowsx64-windowsincludeboostcomputeiteratortransform_iterator.hpp(177,53): error C2039: [
1>C:UsersDavesourcereposBoostComputeTestBoostComputeTestvcpkg_installedx64-windowsx64-windowsincludeboostcomputeiteratortransform_iterator.hpp(177,53): error C2039: T=int
1>C:UsersDavesourcereposBoostComputeTestBoostComputeTestvcpkg_installedx64-windowsx64-windowsincludeboostcomputeiteratortransform_iterator.hpp(177,53): error C2039: ]
1>(compiling source file 'Main.cpp')
1> C:UsersDavesourcereposBoostComputeTestBoostComputeTestvcpkg_installedx64-windowsx64-windowsincludeboostcomputeiteratorzip_iterator.hpp(172,7):
Is there a problem with my code, or should I report this as a bug to the Boost project?