c++ - 强制单参数构造函数在 C++ 中显式?

标签 c++

默认情况下,在 C++ 中,单参数构造函数可用作隐式转换运算符。这可以通过将构造函数标记为显式来抑制。

我宁愿将“显式”设为默认值,这样编译器就不能静默使用这些构造函数进行转换。

有没有办法在标准 C++ 中做到这一点?如果做不到这一点,是否有一个编译指示(或类似的)可以在 Microsoft C++ 中工作来做到这一点? g++ 呢(我们不使用它,但它可能是有用的信息)?

最佳答案

不,您必须手动完成所有操作。这很痛苦,但你当然应该养成明确单参数构造函数的习惯。如果您确实找到了解决方案,然后不得不将代码移植到另一个平台,我无法想象您会有多么痛苦。您通常应该回避这样的编译器扩展,因为它会降低代码的可移植性。

关于c++ - 强制单参数构造函数在 C++ 中显式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174349/

相关文章:

c++ - c++中的for循环迭代

c++ - 无法在二维矩阵( vector 的 vector )中设置值

c++ - 自动将类成员注册到 C++ 中的包含对象

c++ - C++程序无输入后如何退出

c++ - 为什么要在这个 return 语句中使用这个逗号?

c++ - 如何用C++通过外接电脑喇叭输出不同的波形信号?

c++ - 是否可以在 Qt 中使用带下划线的字母作为键盘快捷键?

c++ - 避免虚拟模板函数

c++ - 有没有办法关闭 C++ 和 Rust 编译的循环优化?

c++ - 绘制 n 尖星 opengl c++