问题标签 [implicit-conversion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1257 浏览

c - C中的隐式转换?

这里发生了什么:

输出:

如果我在尝试打印它们之前确保这些变量的类型,它当然可以正常工作。为什么第二个打印语句没有被隐式转换为 1.00000?

0 投票
3 回答
1230 浏览

sql-server - 在这种情况下,SQL Server 隐式类型转换如何工作?

当我在 SQL Server 中尝试这个临时查询时(假设UserId是 NVARCHAR 字段):

我收到此错误:

'foo'显然,在我的UserId专栏下面的某个地方有一个值。

为什么 SQL Server 试图将我的整个列转换为 INTEGER,而不是做对我来说显而易见的事情:将我的搜索值转换为 NVARCHAR?

0 投票
5 回答
60168 浏览

c# - 静态隐式运算符

我最近发现了这段代码:

是什么static implicit operator意思?

0 投票
2 回答
7175 浏览

c++ - 什么时候应该使用直接初始化,什么时候应该使用复制初始化?

它是简单的偏好还是有特定的情况需要一个而不是另一个?我指的是以下变体进行初始化

0 投票
2 回答
3346 浏览

iphone - 隐式转换将 64 位缩短为 32 位

有人可以解释为什么这会导致标题中所述的错误吗?

谢谢

0 投票
3 回答
2929 浏览

c++ - 在头文件中使用类而不访问其定义?

这是google 的 c++ 编码指南的摘录。

我们如何在头文件中使用 Foo 类而不访问其定义?

  • 我们可以声明 Foo* 或 Foo& 类型的数据成员。
  • 我们可以用 Foo 类型的参数和/或返回值声明(但不能定义)函数。(一个例外是,如果参数 Foo 或 const Foo& 具有非显式的单参数构造函数,在这种情况下,我们需要完整的定义来支持自动类型转换。)
  • 我们可以声明 Foo 类型的静态数据成员。这是因为静态数据成员是在类定义之外定义的。

我很好奇的是第二个项目符号中的异常。为什么会这样?如果我们想支持自动类型转换,为什么需要完整的定义?

我的猜测是编译器需要目标类型的完整定义,因为在隐式转换中创建了临时对象。我猜对了吗?还有更多吗?

编辑:

正如我所看到的,指南中的例外是针对这样的情况:

这里我们只有一个用户定义的隐式转换(从 int 到 A),并调用接受 A const & 的构造函数。在此异常中唯一有意义的是支持从例如 int 到 A,然后通过接受 A const & 的构造函数到 B 的直接转换,允许客户端代码使用此转换链,而无需显式包含 A 类所在的头文件宣布。

0 投票
6 回答
14094 浏览

c++ - C++ 隐式转换原语的警告或错误

我对一些 C++ 代码进行了一些重度重构,并发现了许多由我不知道的隐式转换引起的错误。

例子

问题

  1. b,返回类型a被默默地转换为bool
  2. c中,返回的值b被默默地提升为int64_t

问题

如何接收原始类型之间隐式转换的警告或错误

笔记

  1. 的使用-Wconversion似乎只选择了几个与上面示例无关的任意转换。
  2. BOOST_STRONG_TYPEDEF不是一个选项(我的类型需要是 POD,因为它们用于磁盘结构)。
  3. C 也很有趣,但是这个问题与 C++ 代码库有关。
0 投票
2 回答
1492 浏览

c# - C# 隐式强制转换“重载”和反射问题

我对以下代码(编译但崩溃)有疑问:

我已经评论了不起作用的陈述。有谁知道为什么 Convert.ChangeType 和 PropertyInfo.SetValue 似乎没有使用 MyBoolean 中定义的“重载”强制转换运算符?

顺便说一句,我在这里浏览了其他几个文档,但没有找到与问题完全匹配的内容。

最好的问候托马斯

0 投票
3 回答
1505 浏览

c++ - g++ 编译器和隐式转换

我正在使用 g++ 编译我的 C++ 程序,但我想停止 int 和 dooble 等类型之间的隐式转换,例如:我有一个使用 double 作为参数的函数,但是当我在这个函数的参数中发送一个 int 时,编译通过,没有错误或警告。

所以这是我的问题,如何停止隐式转换?

谢谢。

0 投票
3 回答
8037 浏览

scala - 隐式转换,是否需要导入?

我写

在我的程序中。这会导致编译错误。我插入后

然后它工作。

从 Odersky 的Programming in Scala 中,我得到源或预期目标类型的伴随对象中的隐式转换不需要导入。