8得票3回答
为什么下面的表达式代表了一种缩小转换?

这个表达式可以在标准中的§8.5.4/7的示例中找到(N3797)。 unsigned int ui1 = {-1}; // error: narrows 给定 §8.5.4/7 及其第四个要点: 缩小转换是一种隐式转换: 从整数类型或未作用域枚举类型到不能表示原始类型所有值的整数类...

8得票1回答
当不需要检查缩小转换时,是否需要实例化函数定义?

请考虑以下程序: template<typename T> constexpr int f() { T{}.i; // error if instantiated with [T = double] return 42; } constexpr void g(...

7得票1回答
为什么 TypeScript 无法推断我的代码中的类型?

为什么 TypeScript 编译器会对以下代码发出警告? type Foo = { a: string } type Bar = { b: number } type Baz = Foo | Bar; function f(x: Baz): number { if (x....

7得票1回答
为什么在将float强制转换为char时,C++不会显示缩小转换错误?

使用以下命令进行编译:g++ -std=c++17 -Wall -pedantic main.cpp,不会产生任何警告: #include <iostream> #include <stdlib.h> int main(int argc, char const *a...

7得票1回答
避免缩小转换的字符数组创建

我正在编写一个单元测试,检查一些二进制数据与预期数组是否一致。所涉及的预期数组只是一些字节序列,具体内容并不重要: char expected[] = {0x42, 0xde, 0xad, 0xbe, 0xef}; 这段代码在C++中编译正常,但是在C++11中会发出一个有关缩小转换的警...

7得票2回答
在EJB中缩小JNDI引用时出现了类转换异常。

我正在尝试编写一个简单的无状态会话Bean,但在查找时给出的窄引用存在问题。 我收到了“类转换异常”。 我使用Eclipse IDE。 我的Bean类是: package codes; import java.rmi.RemoteException; import javax.ejb.EJ...

7得票2回答
为什么 `bool b = 2` 可以正常工作,但 `bool b = {2}` 会出现窄化转换警告?

在C++11中使用{}初始化器初始化bool b = {2}会产生以下警告信息: warning: narrowing conversion of ‘2’ from ‘int’ to ‘bool’ inside { } [-Wnarrowing] 然而,使用旧风格的bool b = 2没...