cpp::execution_policy<tag> needs to derive from detail::sequential::execution_policy, not thrust::execution_policy.
Introduce sequential implementations of assign_value, get_value, and iter_swap.
Have the cpp system inherit these implementations.