zauważyłem C++ nie zostanie skompilowany następujące:Dlaczego nie mogę mieć nieintegralnego elementu stałej stałej w klasie?
class No_Good {
static double const d = 1.0;
};
Jednak będzie ona szczęśliwie umożliwiają zmianę gdzie podwójna jest zmieniany na int, unsigned, czyli wszelkiego rodzaju integralną:
moje rozwiązanie było zmieniać je czytać:
class Now_Good {
static double d() { return 1.0; }
};
i zrozumieć, że kompilator będzie wystarczająco silny, aby wbudować w razie potrzeby ... ale to mnie opuścił cur ious.
Dlaczego projektant (y) C++ pozwoliłby mi na statyczne const int lub unsigned, ale nie podwójne?
Edytuj: Używam Visual Studio 7.1 (.net 2003) w systemie Windows XP.
Edit2:
Pytanie zostało odebrane, ale na zakończenie, błąd widziałam:
error C2864: 'd' : only const static integral data members can be initialized inside a class or struct
jaki kompilator/platforma, czy widzisz go na wielokrotnościach? – warren
Jaki komunikat błędu pojawia się w VS7.1? –