很容易忘记将构造函数标记为"显式":添加/删除args,使它们成为可选的等等.我知道的唯一可靠方法是将每个构造函数声明为显式,然后仅在设计需要隐式时才删除此关键字(谢谢标准,不仅允许单参数构造函数).但这看起来很难看.
不打算隐式构造函数打开(错误的)隐式转换的使用,例如在这里.这可能是偶然发生的,或者可能会破坏向后兼容性
那么为什么"显式"不是构造函数的默认特性,如果这会导致更少的错误?
ps是的,我读过Stroustrup的"C++的设计和演变",只是不记得他是否说过"明确的"那里
c++ ×1