W tym uproszczonym przypadku testowego:Co oznacza komunikat "tester klasy dopełnienia" z 4 bajtami "?
#include <map>
class Tester {
int foo;
std::map<int, int> smap;
};
int main() {
Tester test;
return 0;
}
otrzymuję następujące ostrzeżenie kompilatora:
$ clang++ -std=c++98 -Weverything test.cc
test.cc:5:24: warning: padding class 'Tester' with 4 bytes to align 'smap' [-Wpadded]
std::map<int, int> smap;
^
może ktoś wyjaśnić co to oznacza ostrzegawczych, a jak mam to adres?
Oznacza to, że włączyłeś zbyt wiele ostrzeżeń. :) –
Tak, struct padding jest * cechą *, a nie czymś, o czym trzeba ostrzegać. Przypuszczam, że flaga jest tam, więc ludzie, którzy muszą znać * dokładny * układ swoich struktur w pamięci, mogą dodać wyraźne dopełnienie i zostać ostrzeżeni za każdym razem, gdy opuścili część, ale to nie jest normalny scenariusz. – hobbs
@RetiredNinja Święty człowiek krowa, sposób, aby całkowicie reprezentować swoją nazwę użytkownika :) – bobobobo