I został zbudowany MinGW z pnia wersja GCC-4.7.0: http://code.google.com/p/mingw-builds/downloads/listnon-member dane statyczne inicjalizatory pytania
W opisie zmian tej wersji jest powiedziane, że non-statyczne inicjalizatory członkowskich dane są wdrażane : http://gcc.gnu.org/gcc-4.7/changes.html
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm
Kiedy próbuję skompilować taki przykład:
#include <iostream>
#include <string>
struct type {
type()
:i(33)
{}
int i;
std::string s("string");
};
int main() {
type t;
std::cout << t.i << " : " << t.s << std::endl;
}
dostaję mnóstwo błędów, a ten jest w końcu:
main.cpp: 16: 35: Uwaga: „std :: string (typu :: ) (int) {std aka :: basic_string (type ::) (int)} 'nie pochodzi od' const std :: basic_string < _CharT, _Traits, _Alloc> 'main.cpp: 16: 35: uwaga: nie może rozwiązać problemu z przeciążenia funkcja 't.type :: s'
Ale zgodnie z dokumentacją, kod jest poprawny.
Nie mam zainstalowanego GCC 4.7, aby go przetestować, a moja wersja nie inicjowanie członkostwa wspierającego, ale czy kompilujesz je z flagą -std = C++ 0x? – Griwes
Należy zauważyć, że inicjatory elementów są nowe w GCC 4.7, więc powinien to być prosty błąd kompilatora. –
do Griwes: tak. – niXman