compile-time-constant

    14熱度

    6回答

    常數我已經設置了一些默認的顏色在C#WinForms應用程序,像這樣: readonly Color ERROR = Color.Red; readonly Color WARNING = Color.Orange; readonly Color OK = Color.Green; 據我所知,只讀基本上是恆定的,我的目的。如果我試圖將它們定義爲常量,編譯器會指出它必須是編譯時常量,而Col

    12熱度

    2回答

    可能重複: Is 1/0 a legal Java expression? 爲什麼這段代碼編譯? class Compiles { public final static int A = 7/0; public final static int B = 10*3; public static void main(String[] args) {} } 如果我看

    24熱度

    5回答

    Java語言文檔中提到「如果原始類型或字符串被定義爲常量,並且該值在編譯時已知,則編譯器會用代碼中的值替換常量名稱。被稱爲編譯時常量。「 所以我的理解是,如果我們有一段代碼: private final int x = 10; 然後,編譯器會用文字「10」替換代碼「x」的每次出現。 但表示假設不變與在運行時間值初始化, private final int x = getX(); // here

    5熱度

    5回答

    我知道這是一個簡單的問題,但我很困惑。我有一個相當典型的海灣合作委員會警告這通常是很容易解決: warning: comparison between signed and unsigned integer expressions 每當我有一個十六進制常量最顯著位,像0x80000000L,編譯器將其解釋爲無符號。例如編譯具有-Wextra這個代碼將導致警告(GCC 4.4倍,4.5倍):我專門爲

    6熱度

    1回答

    Visual C++有#pragma message即outputs a string into compiler output。現在我有一個工廠:。 template<class Type> CComPtr<Type> CreateComObject() { CComPtr<Type> newObject(new CComObject<Type>); //do some

    7熱度

    3回答

    這個問題純粹來自「心理主宰」,可能沒有實用價值。 如果我使用def在Clojure中定義了一個值,編譯器是否可以在編譯時引導進行評估,而不是等到運行時? (def the-answer 42) (+ the-answer 1) 我想我可以定義一個宏,但調用語法也有點尷尬: (defmacro the-answer [] 42) (+ (the-answer) 1) 這也適用,但仍是

    1熱度

    1回答

    如果它有一個特定的自定義屬性,有什麼辦法強制類實現一個接口? 我想要編譯時錯誤,如果具有特定屬性的類沒有實現特定的接口。 [myAttrib] public MyClass:IMyInterface { } 如果myClass不是typeof(IMyInterface),我將在編譯時發生錯誤。 感謝,

    11熱度

    2回答

    我似乎錯過了一些相當重要的東西。 我想在編譯時使用const數組成員。 const int list[3] = { 2, 5, 7 }; const int a = list[2]; // this doesn't error? template<int N1, int N2> struct tmax { enum { value = ((N1 > N2) ? N1 : N2)

    11熱度

    1回答

    我很好的典型範例精通常數: //.h extern const int myInt; //.c, .m, .cpp, what have you const int myInt = 55; 但一定是給它放入.h文件與庫或其他情況下,您使用的方式無法訪問實施文件。 例如,我想一個NSString不斷在Xcode項目添加到.h文件像這樣: static NSString *const my

    25熱度

    2回答

    我想有一個方法的可選日期參數(默認爲MinValue),以檢查用戶是否實際提供了一個值(提供MinValue無效),但我不允許顯然它不是一個編譯時常量。 根據the MSDN page,「該常數的值等於00:00:00.0000000,0001年1月1日」。 那麼,爲什麼編譯時不是常量?爲什麼它不同於傳入Int32.MinValue,這是允許的?