在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();
}