diff options
Diffstat (limited to 'boost/compute/algorithm/detail/radix_sort.hpp')
-rw-r--r-- | boost/compute/algorithm/detail/radix_sort.hpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/boost/compute/algorithm/detail/radix_sort.hpp b/boost/compute/algorithm/detail/radix_sort.hpp index 8e6d5f9c0a..53b1205c70 100644 --- a/boost/compute/algorithm/detail/radix_sort.hpp +++ b/boost/compute/algorithm/detail/radix_sort.hpp @@ -17,6 +17,9 @@ #include <boost/type_traits/is_signed.hpp> #include <boost/type_traits/is_floating_point.hpp> +#include <boost/mpl/and.hpp> +#include <boost/mpl/not.hpp> + #include <boost/compute/kernel.hpp> #include <boost/compute/program.hpp> #include <boost/compute/command_queue.hpp> @@ -305,9 +308,12 @@ inline void radix_sort_impl(const buffer_iterator<T> first, options << " -DASC"; } + // get type definition if it is a custom struct + std::string custom_type_def = boost::compute::type_definition<T2>() + "\n"; + // load radix sort program program radix_sort_program = cache->get_or_build( - cache_key, options.str(), radix_sort_source, context + cache_key, options.str(), custom_type_def + radix_sort_source, context ); kernel count_kernel(radix_sort_program, "count"); |