Похоже, ваш компилятор серьезно сломан. Ваш конструктор копирования объявлен с неконстантным ссылочным параметром. Такой конструктор копирования не может быть вызван с временным объектом в качестве аргумента, поскольку неконстантная ссылка не может быть связана с временным объектом.
Ваши инициализаторы являются временными объектами, что означает, что нет абсолютно никакого способа вызвать конструктор копирования. Если ваш компилятор делает это, это означает, что он либо сломан, либо вы используете какой-то набор настроек, которые заставляют его вести себя странным образом несовместимым образом. Какой компилятор вы используете?
Это первая часть ответа.
Вторая часть заключается в том, что заключенные в скобки списки инициализаторов интерпретируются как инициализация копирования в C ++. Другими словами, конструктор копирования должен быть вызван в этом случае. Обойти это невозможно (вызов может быть впоследствии оптимизирован, но конструктор должен быть доступен в любом случае). В связи с этим ваш компилятор ведет себя «правильно», то есть он пытается вызвать конструктор копирования, как и положено. За исключением того, что, как я уже говорил выше, в вашем случае он должен выдавать ошибку (поскольку конструктор копирования не вызывается) вместо того, чтобы вызывать его постоянно.
И, наконец, третья часть ответа.
Вы говорите, что конструктор копирования называется вместо конструктора преобразования. На самом деле, оба называются. Если вы посмотрите внимательно, вы увидите это. Сначала вызывается конструктор translation для создания промежуточного временного объекта типа 'SinglyLinkedList' из предоставленной вами строки (которая также включает в себя создание временного объекта 'std :: string'), а затем конструктор копирования вызывается для того, чтобы инициализировать элемент массива из временного (это происходит для каждого элемента в массиве). Вот как это должно быть в C ++, при условии, что ваш copy-constrcutor объявлен правильно, то есть с константным ссылочным параметром. Но с неконстантным ссылочным параметром конструктор копирования не может быть вызван, а код некорректен.