While the C++ standard libraries are very generic and efficient libraries, some minor details of their interfaces just seem disappointing.
Algorithms cannot take containers directly.
std::sort(myvec.begin(), myvec.end());
instead ofstd::sort(myvec);
(I don't really see a valid why the second form was not provided from the beginning)Most of function member taking string require
const char *
insteadconst std::string&
. (C++ strings arestd::string
, at least there should be an overload)
As far as I know these two minor defects are supposed to be corrected in the c++0x
standard.
Can you see other of these minor defects ?
Why do you think it is a defect ?
Will it be corrected some day?
(of course the debate here is not for or against generic programming, nor in fact about general design issues. Just missing overloads, missing algorithms version, unhandy interface ...)