Какие жадные примеры списка инициализаторов скрываются в стандартной библиотеке?
Начиная с C ++ 11, контейнеры стандартной библиотеки иstd::string
есть конструкторы, принимающие список инициализаторов. Этот конструктор имеет приоритет над другими конструкторами (даже, как указал @ JohannesSchaub-litb в комментариях, даже игнорируя другие)лучший матч" критерии). Это приводит к нескольким известным подводным камням при преобразовании всех заключенных в скобки()
формы конструкторов в их фигурные версии{}
#include
#include
#include
#include
#include
void print(std::vector const& v)
{
std::copy(begin(v), end(v), std::ostream_iterator(std::cout, ","));
std::cout < "\n";
}
void print(std::string const& s)
{
std::cout < s < "\n";
}
int main()
{
// well-known
print(std::vector