默认情况下,在 C++ 中,单参数构造函数可用作隐式转换运算符。这可以通过将构造函数标记为显式来抑制。
我宁愿将“显式”设为默认值,这样编译器就不能静默使用这些构造函数进行转换。
有没有办法在标准 C++ 中做到这一点?如果做不到这一点,是否有一个编译指示(或类似的)可以在 Microsoft C++ 中工作来做到这一点? g++ 呢(我们不使用它,但它可能是有用的信息)?
最佳答案
不,您必须手动完成所有操作。这很痛苦,但你当然应该养成明确单参数构造函数的习惯。如果您确实找到了解决方案,然后不得不将代码移植到另一个平台,我无法想象您会有多么痛苦。您通常应该回避这样的编译器扩展,因为它会降低代码的可移植性。
关于c++ - 强制单参数构造函数在 C++ 中显式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174349/