Too bad "Concepts" did not make it into the standard. Would help avoid the tons of unintelligible error messages one gets when using template functions incorrectly.
Given that C++ libraries are getting so complex (now with move semantics!) there is no way a library user can understand why something does not work as expected. Especially when dealing with sophisticated libraries: Boost, Eigen, etc.