C++17 supports user-defined deduction guides, allowing class constructors to be invoked without specifying class template arguments. Instead, the code can contain rules to infer the template arguments from the constructor argument types.
This alleviates the need for the MakeSpan
helper. Convert the existing MakeSpan rules into deduction rules for Span
itself, and replace all invocations of MakeSpan
with just Span
ones.