История изменений
Исправление Deleted, (текущая версия) :
де автор строки и не догадывается
если автор - программист на С++, то догадывается. Любой конструктор с одним аргументом нужно делать explicit по умолчанию, это хорошая практика, описанная во многих статьях. Можно подумать, что это костыль, но на самом деле, это не так, это в рамках идеологии С++ (конструктор - такой же метод, а для метода поведение 'implicit' очень интуитивно, поэтому оно по дефолту. конструктор с одним параметром - особый случай, и его надо подчеркнуть - ставим «explicit». нет проблем).
А вот размазывать по коду всякие касты - это плохая практика, заставляющая цепляться глазами всякий раз за это место, где это не требуется, усложняя чтение.
Исходная версия Deleted, :
де автор строки и не догадывается
если автор - программист на С++, то догадывается. Любой конструктор с одним аргументом нужно делать explicit по умолчанию, это хорошая практика, описанная во многих статьях. Можно подумать, что это костыль, но на самом деле, это не так, это в рамках идеологии С++ (конструктор - такой же метод, а для метода поведение 'implicit' очень интуитивно, поэтому оно по дефолту. конструктор с одним параметром - особый случай, и его надо подчеркнуть - ставим «explicit». нет проблем).