Раньше, когда вы писали std::vector<T> buf(100);
, вы получали один T
построенный по умолчанию, а затем этот экземпляр копировался в сто слотов в векторе.
Теперь, когда вы пишете std::vector<T> buf(100);
, он будет использовать другой конструктор: explicit vector( size_type count );
.Это создаст по умолчанию сто T
с.Это небольшое отличие, но важное.
Новый конструктор с одним аргументом не требует, чтобы тип T
был копируемым.Это важно, потому что теперь типы могут быть перемещаемыми и не копируемыми.