tajemnicze bledy....
Michal Kochanowicz
mkochano w ee.pw.edu.pl
Śro, 21 Cze 2000, 18:31:36 CEST
On Wed, Jun 21, 2000 at 01:57:20PM +0200, Wojciech Sas Cieciwa wrote:
> giltprotocol.cc:136: ANSI C++ forbids implicit conversion from `void *' in assignment
> O co w tym chodzi ??
>
> Bo w C++ jestem zielony jak mlody chlorofil.
To powinno być dość proste do poprawienia, spróbuję to wyjaśnić na
przykładzie (z góry przepraszam jeśli coś pokręciłem):
int main(void) {
char *c;
void *v;
// Zwróć uwagę że tu wszystko jest OK, aczkolwiek to przypisanie
// powoduje utratę informacji o typie. new zwróci "wskaźnik na
// char", ale przypisujesz go do "wskaźnik na cokolwiek".
v = new char;
// Niezgodność z ANSI C++: przypisanie niezgodnych typów: kompilator
// nie wie, czy obiekt wskazywany przez zmienną typu "wskaźnik na
// cokolwiek" jest w rzeczywistości typu "char" a nie "cokolwiek".
c = v;
// Dobrze: jawne rzutowanie typu. W ten sposób mówisz kompilatorowi,
// że wiesz co robisz ;)
c = (char *)v;
return 0;
}
Czyli, żeby kompilator przełknął ten plik, będziesz musiał albo znaleźć
opcję, która spowoduje że nie będzie mu to przeszkadzać (pobieżne
przejrzenie manuala g++ nie ujawniło takowej ;) ) lub dopisać rzutowanie
typu tam gdzie kompilator tego zarząda.
--
--==Michał Kochanowicz==--==--==BOFH==--==--==mkochano w ee.pw.edu.pl==--
--==PGP key: www.ee(...)/~mkochano/PGP/ or finger me @ miriam.ee...==--
--== Prosecutors will be violated ==--
Więcej informacji o liście dyskusyjnej pld-devel-pl