implicit-conversion相关内容

为什么要使用 const 进行隐式转换?

广泛阅读ISO/IEC 14882, 编程语言 - C++ 我仍然不确定为什么需要 const 来隐式转换为具有单个参数构造函数的用户定义类型,如下所示 #include X类{上市:X(整数值){printf("用 %i 初始化的构造函数",value);}}无效隐式转换函数(常量 X& 值){//产生“用99初始化的构造函数"}int main (int argc, ch ..
发布时间:2022-01-23 23:55:50 C/C++开发

在 Scala 中,“println(1,2)"是如何工作的?

在 Scala (2.7.7final) 中,Predef.println 方法被定义为具有以下签名: def println (x : Any) : 单位 怎么会这样: scala>println(1,2)(1,2) 编译器是否会自动将逗号分隔的参数列表转换为元组?用什么魔法?这里是否有隐式转换,如果有,是哪一个? 解决方案 是的,如果没有合适的多参数方法和一个合适的单参数方法, ..
发布时间:2022-01-20 08:24:46 其他开发

return 语句何时需要显式移动?

在对另一个问题的评论中,Jonathan Wakely 回应了我的声明: 对于局部变量函数返回,您永远不需要显式移动价值.这是隐含的移动 -> ...永远不要说永远...如果局部变量,您需要显式移动与返回类型不同,例如std::unique_ptrf() { auto p = std::make_unique();p->foo();返回 p;},但是如果类型相同,它会尽可 ..
发布时间:2022-01-19 14:43:01 C/C++开发

将方法组隐式转换为委托(用于 Control.Invoke 的参数)

我正在开发一个 Windows 窗体应用程序,它包含自定义控件以及可以从 UI 线程以外的线程调用的方法.所以这些方法因此看起来有点像这样来防止异常: public void DoSomeStuff(){if (InvokeRequired){调用((动作)DoSomeStuff);}别的{//实际上做一些事情.}} 方法组 DoSomeStuff 到 Action 的显式转换引起了我的注意, ..
发布时间:2022-01-18 12:49:33 C#/.NET

为什么隐式defs需要implicitConversions而不是类?

据我了解,隐式转换可能会导致代码难以理解,或者代码存在其他问题(甚至可能是错误?),这就是为什么它们需要显式启用才能在代码中使用而不会收到警告. 但是,鉴于隐式转换在很大程度上(如果不是大部分时间)用于用另一种类型的对象包装对象,隐式类也是如此 - 如果我是,我会很感激你纠正我错了——为什么前者需要导入 scala.language.implicitConversions 而后者不需要? ..
发布时间:2022-01-13 08:24:43 其他开发

为什么我通过将两个短整数相乘得到一个负数?

我有一个任务,我有以下代码摘录: /*OOOOOHHHHH 我刚刚注意到这里应该是一个 *short int* 而不是一个 int 我将保持原样,因为太多用户已经看到它了.*/整数 y=511,z=512;y=y*z;printf("输出:%d\n", y); 这给了我输出:-512.在我的作业中,我应该解释原因.所以我很确定这是因为将 int 值分配给短整数时发生的隐式转换(如果我错了,请纠 ..
发布时间:2022-01-13 08:20:20 C/C++开发

与类型转换相关的排名是什么意思?

来自 C++11 标准(草案 n3337)§5/9: ——如果两个操作数的类型相同,则不再进行转换需要. — 否则,如果两个操作数都具有有符号整数类型或两者都具有无符号整数类型,具有较小整数类型的操作数转换 rank 应转换为操作数的类型更高的排名. — 否则,如果具有无符号整数类型的操作数具有 rank大于或等于另一个操作数类型的rank,带符号整数类型的操作数应转换为无符号整 ..
发布时间:2022-01-13 08:15:14 C/C++开发

为什么这种从 int 到 uint 的隐式转换有效?

使用 Casting null doesn't compile 作为灵感,来自 Eric Lippert 的评论: 这展示了一个有趣的案例.“uint x = (int)0;"将即使 int 不能隐式转换为 uint,也会成功. 我们知道这不起作用,因为 object 不能分配给 string: string x = (object)null; 但这确实如此,虽然直觉上它不应该: ..

为什么调用 Python 的“魔术方法"不像对应的运算符那样进行类型转换?

当我从整数中减去浮点数时(例如 1-2.0),Python 会进行隐式类型转换(我认为).但是当我使用魔术方法 __sub__ 调用我认为是相同的操作时,它突然不再存在了. 我在这里缺少什么?当我为自己的类重载运算符时,除了将输入显式转换为我需要的任何类型之外,还有其他方法吗? a=1a.__sub__(2.)# 返回未实现a.__rsub__(2.)# 返回未实现# 但是,当然:a2.# ..
发布时间:2022-01-13 08:13:43 Python

Java 中的隐式转换是如何工作的?

我知道在 Java 中整数文字默认是 int,所以如果我写这样的东西 byte byteValue = 2; Java 自动将文字值 2(默认为 int)转换为字节.如果我写,同样的事情也有效 byte byteValue = 4/2; RHS 被评估为 int 并隐式转换为字节. 但是为什么下面两种情况没有发生隐式转换呢? int n1 = 4;字节值 = n1/2; 或在此 ..