As mentioned in #203, passing a collection to sort and a projection to indirect_adapter<spread_sorter> doesn't compile and barfs thousands of lines of template error messages. Theoretically it should work since nothing in indirect_adapter requires the comparison to work: this was the conclusion of issue #138, but the tests weren't good enough and let simple yet obvious cases slip through the holes.
My initial guess is that indirect_adapter_impl::operator() doesn't perform enough SFINAE: it uses decltype(auto) which probably makes some expressions of interest ill-formed when we need proper SFINAE for them to work.
As mentioned in #203, passing a collection to sort and a projection to
indirect_adapter<spread_sorter>
doesn't compile and barfs thousands of lines of template error messages. Theoretically it should work since nothing inindirect_adapter
requires the comparison to work: this was the conclusion of issue #138, but the tests weren't good enough and let simple yet obvious cases slip through the holes.My initial guess is that
indirect_adapter_impl::operator()
doesn't perform enough SFINAE: it usesdecltype(auto)
which probably makes some expressions of interest ill-formed when we need proper SFINAE for them to work.