[diff.cpp17.alg.reqs]

# Annex C (informative) Compatibility [[diff]](./#diff)

## C.3 C++ and ISO C++ 2017 [[diff.cpp17]](diff.cpp17#alg.reqs)

### C.3.13 [[algorithms]](algorithms "26 Algorithms library"): algorithms library [diff.cpp17.alg.reqs]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L1413)

**Affected subclause:** [[algorithms.requirements]](algorithms.requirements)  


**Change:** The number and order of deducible template parameters for algorithm declarations
is now unspecified, instead of being as-declared[.](#1.sentence-1)

  


**Rationale:** Increase implementor freedom and allow some function templates
to be implemented as function objects with templated call operators[.](#1.sentence-2)

  


**Effect on original feature:** A valid C++ 2017 program that passes explicit template arguments to
algorithms not explicitly specified to allow such in this version of C++
may fail to compile or have undefined behavior[.](#1.sentence-3)
