81得票4回答
用两种类型声明一个变量:"int char"

我是一名C++初学者,正在阅读Bjarne Stroustrup的《Programming: Principles and Practice Using C++》。在“3.9.2 不安全的类型转换”一节中,作者提到:当初始化器为整型字面值时,编译器可以检查实际值并接受不会导致缩小的值:int ...

45得票3回答
为什么一个final变量不总是一个常量表达式?

在下面的代码中:final int a; a=2; byte b=a; // error: possible loss of precision 我为什么会遇到这个错误?a不是一个final变量的编译时常量表达式吗,在赋值期间隐式缩小为byte? 换句话说,上面的代码不等同于:final...

41得票1回答
Emacs:同一缓冲区,两个窗口,一个缩小,一个不缩小

我觉得narrow-to-region命令很有用,但它只适用于缓冲区而不是当前窗口。 我想让一个窗口显示缩小版本的缓冲区,在任何其他窗口中显示扩大版本的缓冲区。 这个可能吗?

34得票4回答
Java中的隐式转换是如何工作的?

我知道在Java中,整数字面量默认为int类型的,所以如果我写下像这样的代码:byte byteValue = 2; Java自动将字面值2(默认为int类型)转换为byte类型。如果我写成以下形式,同样适用:byte byteValue = 4/2; RHS被评估为int并隐式转换为byte...

28得票2回答
警告:缩小转换 C++11

g++ 4.9.0 -O2 -std=c++11 template<class T> struct vec3 { T x, y, z; vec3() = default; vec3(const vec3<T> &other) = def...

26得票1回答
为什么我不能使用左值初始化这个std::vector?

我遇到了一个有趣的问题,但我无法理解发生了什么: /* I WANT 6 ELEMENTS */ int lvalue = 6; std::vector<int*> myvector { 6 }; /* WORKS FINE */ std::vector<int*>...

25得票1回答
将bool类型的缩小转换应用于列表初始化——奇怪的行为

考虑以下这段C++11代码: #include <iostream> struct X { X(bool arg) { std::cout << arg << '\n'; } }; int main() { double d = 7....

21得票3回答
当 noUncheckedIndexedAccess 为 true 时,通过长度缩小数组类型的类型安全方法

给定一个接受单个 string[] 参数 myArray 的函数。 如果我计算 .length 属性并且该属性大于 0,那么(假设我的变量不是伪装成的any),myArray[0] 不可能是未定义的。然而,如果我启用 noUncheckedIndexedAccess,它的类型将是 string...

17得票4回答
有没有一种“安全”的静态类型转换替代方案?

在C++11/14中,是否有“安全”的替代static_cast的方法,或者实现此功能的库? 所谓“安全”,是指该转换仅应允许不会失去精度的转换。因此,只有当一个数字适合于int32_t时,才允许从int64_t到int32_t的转换,否则将报告错误。

17得票3回答
为什么只有在列表初始化的情况下才会出现缩窄转换警告?

我有以下代码:class A { public: A(const unsigned int val) : value(val) {} unsigned int value; }; int main() { int val = 42; ...