Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dlaczego Code::Blocks akceptuje inicjalizację w ciele klasy static const float?

Ostatnio zmodyfikowano 2010-12-17 23:53
Autor Wiadomość
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???
P-25261
malan
» 2010-12-17 22:08:24
Poproszę o fragment standardu, w którym to wyczytałeś. :)
P-25262
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..."


P-25263
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.
P-25264
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.
P-25265
« 1 »
  Strona 1 z 1