Closed jeffhammond closed 1 year ago
@jeffhammond, error you sent is caused by adding C++20 constraints into oneTBB APIs to provide early diagnostics of named requirements violations.
For your particular case, there is a violation of ParallelReduceFunc requirement. It should accept const Range&
, while the function provided in your code accepts decltype(range)&
.
As in your use-case, the code that violates named requirement could compile and work correctly until C++20, but it can stop working due to some internal changes in oneTBB implementation. That is why we made a decision to constraint these APIs and to enforce fixing the code that violates named requirement and prevent future errors caused by such violation. Our development guide contains a short caution about this.
@jeffhammond, is this still an issue or it can be closed?
Sure. Thanks for your help.
I've been supporting TBB in the PRK project for years. Now it seems you've completely changed
parallel_reduce
such that none of the code compiles anymore.Why do you keep doing this? Is there a migration documentation?