Здравствуйте, sergii.p, Вы писали:
SP>Почему собственно код (1) компилируется. Там объект vector уже существует и никаких конструкторов не вызывается. Вызывается оператор присваивания. Этот оператор присваивания size_t принимать никак не может. Поэтому тут неоднозначности не возникает
Запись вида
X x = y; не предполагает вызов оператора присваивания, а подразумевает выполнение
copy initialization.