в некоторой степени относится к вашему вопросу: если в C ++ есть время, когда вы * явно * просто не хотите, чтобы компилятор изменял для вас типы таким образом, когда существует совместимый конструктор, вы используетеключевое слово «явный» перед конструктором.Тогда это даст вам ошибку компилятора.Однако вы можете делать это только с теми типами, которые вы создаете.Не с типами STL, такими как string.