const Vector4 colorBlack = new Vector4(0,0,0,1);//Vector4 is struct
public static void example(Vector4 color = colorBlack) //not ok
{
//do something
}
const int someInt = 0;
public static void exampleInt(int n = someInt) // ok
{
}
「コンパイル時定数」とは正確には何なのか知りたいです。ここから、それは述べています
const としてマークされたメンバーのすべてのインスタンスがコンパイル中にその値に置き換えられ、読み取り専用メンバーは実行時に解決されることを意味します。
したがって、colorBlack を const として持っている場合、それはコンパイル時の定数になると想定しましたが、コンパイラはそうではないと教えてくれます。しかし、「const int some int = 0;」について文句はありません。コンパイル時定数です。
なんで?