Am 07.08.24 um 14:47 schrieb Matt Borland via Boost:
Now in the code base for example instead of using std::pair you use boost::math::pair which aliases to either thrust::pair or std::pair depending on context. What exactly do you mean by "depending on context"? I see a define based on which either one is chosen. First thing that comes to my mind is: ODR violation. How do you avoid this when using such defines in headers? What is the benefit of implicitly using the CUDA types? Can you really use either in place of the other without being aware of that? 1) Would these utilities be useful to you? 2) If yes, do you think that Boost.Config is the right home for them? I would definitely make that a separate library with proper documentation, motivation and examples. Yes that might be small, but so are other base-libraries in Boost. That would also be the place to answer the why, where and how it is supposed to be used.
Alex