1 аргументные конструкторы являются конструкторами преобразования.Если операция не является простой реинтерпретацией (и при этом без потерь), большинство стандартов кодирования говорят, что вы делаете это явным.
BrokenPromise строки не является простой реинтерпретацией строки без потерь.Таким образом, явный.
Есть и другие причины, чтобы избежать неявного преобразования;например, BrokenPromise
может быть сконструировано из 0
случайно, если char const*
было неявным.
В случае неявного может быть построение комплексного числа из одного числа с плавающей запятой;Реалы являются подмножеством комплекса.