问题标签 [explicit-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.
c++ - 编译器未能将显式转换应用于用作条件的表达式
这是我的代码:
在 c++ Primer(5th) 中,它说:
编译器将对用作条件的表达式应用显式转换
但是在这种情况下,没有这样的转换。当我删除explicit
时,代码可以正常工作。
但是, 当我更改
explicit operator int(){ return i; }
为
explicit operator bool(){ return i != 0; }
并分别更改if(s == 4)
为if(s)
,然后代码工作正常。
看起来转换规则有点混乱,有人可以更详细地解释一下吗?
c++ - 使用赋值显式转换
具有显式转换构造函数的简单类。
我故意添加一个分配,使其可以从double
.
我不想要隐式转换,因为它会导致一些其他问题。但我仍然想要直接分配工作,但它没有。无论如何都可以在MyDouble d = 1.1;
不删除explicit
关键字的情况下使最后一条语句起作用。
java - 在 java 中显式转换时,short 128 = byte -128 如何?
我试图了解不同数据类型之间的转换,但我很困惑 128 = -128 in byte 的 short 值以及 1000 in short = -24 in byte 的情况?
我一直在使用以下逻辑将 short 转换为 byte :
1000 十进制 -> 二进制 = 0000 0011 1110 1000
转换为字节时:xxxx xxxx 1110 1000 相当于:232
我确实注意到正确的答案是二进制值的二进制补码,但是我们什么时候使用二进制补码进行转换,什么时候不使用二进制补码将 3450 从短转换为字节时,我没有使用二进制补码但达到了预期的结果。
谢谢!
c# - 当枚举包含具有相同值的元素时,如何将原始类型值转换为枚举值?
我写了代码:
我希望在输出中看到:
只有简称
或只有长名称
或按字母顺序排序后首先出现的名称,在这种情况下与“仅短名称”一致。
但我没想到会看到程序显示了什么:
输出末尾的短名称。 为什么 ?
我试图重新排列 enum 中的列:
我再次对输出感到惊讶:
为什么 ? 请向我解释这里发生了什么。
c++ - 为什么这不对转换构造函数进行隐式转换?
所以我有这个代码:
我原以为Foo foo = Bar(13)
会使用我的隐式强制转换,然后使用转换构造函数。但它错误:
错误:请求从
Bar
非标量类型转换Foo
不过,这很好用:Foo foo(Bar(13))
. 为什么我的隐式转换用于显式转换构造,而不用于隐式转换构造?
我从https://en.cppreference.com/w/cpp/language/copy_initialization得到的规则说:
转换的结果,如果使用了转换构造函数,则为纯右值表达式,然后用于直接初始化对象
c++ - 为什么 switch 和 if 语句与转换运算符的行为不同?
为什么switch
和if
语句与转换运算符的行为不同?
编译错误switch quantity is not an integer
在if
语句中被完全识别为bool
. (海合会)
c++ - 转换迭代器和 const_iterators
一般背景:
我正在尝试构建一个容器,它将充当运行时定义维度的多维数组的包装器 - 事实上,底层数组当然是总大小的一维数组。主要部分是operator []
返回子数组的包装器。
由于容器需要迭代器,我目前正在该容器上实现迭代器,包括Container::iterator
和Container::const_iterator
. 我努力模仿标准容器迭代器,它们应该尊重随机访问和输出迭代器的所有要求。
我已经注意到以下要求:
- 公共默认构造函数
- (当然是复制和移动语义)
iterator
从 an到 a 的隐式转换const_iterator
- iterator 和 const_interator 应该是可比较的
具体上下文:
标准容器迭代器根本不提供从 aconst_iterator
到 a 的转换iterator
,因为删除 const 可能很危险。我已经搜索过这个问题并找到了如何删除 const_iterator 的常量?其中答案提出了不同的技巧来从运算符中删除常量。所以我现在想知道是否应该在指针上实现从 const_iterator 到迭代器ala的显式转换。 const_cast
问题:
const_iterator
实现从 a到 a的显式转换有哪些风险(非常量) iterator
,它与链接问题的解决方案有何不同(为了便于阅读,复制到此处):
使用提前和距离(我的随机访问迭代器中的恒定时间)
/li>使用擦除:
/li>
作为参考,这里是我的迭代器的简化和部分实现:
c# - 如何将显式运算符转换为方法组?
我的班级ClassName
定义了一个运算符:
这允许以这种方式“投射”:
如果我有类似的方法
我可以使用方法组:
有没有办法只为显式运算符传递方法组?
我在正确语法上的天真实验失败了:
c# - 如何对 GenericType 的字典进行类型转换
我有一个字典对象,例如:-
现在我想把它输入:-
有什么办法吗?
c# - c#中数组字符串到数组ulong的转换
我有一个具有值的字符串数组
我需要它转换成 ulong 数组
我应该如何在 c# 中做到这一点
我想我应该添加一些背景。
字符串中的数据来自文本框,我需要在 hexUpDown.Value 参数中写入该文本框的内容。