Dlaczego Code::Blocks akceptuje inicjalizację w ciele klasy static const float?
Ostatnio zmodyfikowano 2010-12-17 23:53
cyklopek11 Temat założony przez niniejszego użytkownika |
Dlaczego Code::Blocks akceptuje inicjalizację w ciele klasy static const float? » 2010-12-17 21:39:44 Przerzuciłem się z Dev'a na Code::Blocks i bawiąc się statycznymi składnikami klasy najnowszy Code::Blocks (10.05) akceptuje mi coś takiego:
class Jakastam {
static const float jakasliczba = 88.98;
};
W aktualnym standardzie c++ czytam że tak można tylko stałe int inicjalizować. Czyżby Code::Block nie był wystarczająco zaktualizowany ze standardami??? |
|
malan |
» 2010-12-17 22:08:24 Poproszę o fragment standardu, w którym to wyczytałeś. :) |
|
cyklopek11 Temat założony przez niniejszego użytkownika |
» 2010-12-17 22:59:40 Programming languages - C++ International standard iso/iec 14882 second edition 2003-10-15
Paragraf: 9.4.2 Static data members Podpunkt: 4 Strona: 162
"...If a static data member is of const integral or const enumeration type, its declaration in the class definition can specify a constant-initializer which shall be an integral constant expression (5.19). In that case, the member can appear in integral constant expressions. The member shall still be defined in a namespace scope if it is used in the program and the namespace scope definition shall not contain an initializer..."
|
|
F90M |
» 2010-12-17 23:31:39 Czyżby Code::Block nie był wystarczająco zaktualizowany ze standardami??? |
A co ma do tego Code::Blocks? Trzymanie się standardu C/C++ jest w gestii kompilatora. Masz GNU/GCC to dodaj sobie w opcjach kompilatora flagę -pedantic albo -pedanti-errors i zacznie ci sypać warnami/błędami. |
|
cyklopek11 Temat założony przez niniejszego użytkownika |
» 2010-12-17 23:53:52 Sprawa rozwiązana. Pomimo ustawienia wszystkich rygorystycznych ustawień ze standardem całe środowisko miało "jakąś" zwiechę i pomimo rebuild wszystkie niestandardowe rzeczy mi akceptowało nawet takie jak : int ile; int tab[ile]; cin >> ile;
Restart Code::Block i wszystko działa nie akceptuje już static const float :-)
Temat zamknięty. |
|
« 1 » |