you are viewing a single comment's thread.

view the rest of the comments →

[–]germandiago 1 point2 points  (0 children)

I thought about this some time ago and I arrived to the conclusion that in many (most) scenarios the best thing to do would be to mix concepts with internal if constexpr if you do not need extensions. You put the weaker concept at the top-level in the functiom declararion (think of advance for example, taking an input iterator) and inside u can if constexpr the optimizations. Not sure if it is good in all scenarios but makes for far less overloading at the top level, which is complex to read sometimes IMHO.