在C++11使用{}初始化初始化bool b = {2}产生以下警告消息: warning: narrowing conversion of ‘2’ from ‘int’ to ‘bool’ inside { } [-Wnarrowing]
然而,使用旧式bool b = 2有没有这样的问题。这背后的原因是什么? 更新:我使用g++ -std=c++11编译代码,它给了我警告。如果我添加选项-
byte b = 0xFFFFFFFF; //OK, because integer -1 sits between -128 and 127, FINE!!
char ch = 0xFFFFFFFF; //Not OK, because integer -1 does not sit between 0 and 65535, FINE!!
byte b = 0L; //Compiler sa
Java中的覆盖方法可以缩小返回类型。 但是有可能在声明期间强制缩小范围吗? public class Try_ForceNarrow {
public interface IMember {
}
public interface Container<M extends IMember> {
M createMember();
}