g++ test.cpp -o test
test.cpp: In function `int main()':
test.cpp:4: erreur: static_cast invalide du type « const unsigned char[5] »
au type « const char* »
make: *** [test] Erreur 1
Seul le reinterpret_cast passe. Non que cela m'embête, mais j'aimerais
comprendre...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc Bourguet
Christophe de Vienne writes:
3 const unsigned char tab[] = "test"; 4 const char * s = static_cast<const char *>(tab); test.cpp:4: erreur: static_cast invalide du type « const unsigned char[5] » au type « const char* »
Seul le reinterpret_cast passe. Non que cela m'embête, mais j'aimerais comprendre...
static_cast sur des pointeurs fonctionne - de et vers void* - entre pointeurs vers des classes ayant un rapport de derivation
En particulier ce n'est pas parce que tu peux faire un static_cast entre deux types que tu peux faire un static_cast entre pointeurs vers ces types (en general, un static_cast peut s'accompagner d'un changement de representation, donc ca semble normal).
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Christophe de Vienne <cdevienne@alphacent.com> writes:
3 const unsigned char tab[] = "test";
4 const char * s = static_cast<const char *>(tab);
test.cpp:4: erreur: static_cast invalide du type « const unsigned char[5] »
au type « const char* »
Seul le reinterpret_cast passe. Non que cela m'embête, mais j'aimerais
comprendre...
static_cast sur des pointeurs fonctionne
- de et vers void*
- entre pointeurs vers des classes ayant un rapport de derivation
En particulier ce n'est pas parce que tu peux faire un static_cast
entre deux types que tu peux faire un static_cast entre pointeurs vers
ces types (en general, un static_cast peut s'accompagner d'un
changement de representation, donc ca semble normal).
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
3 const unsigned char tab[] = "test"; 4 const char * s = static_cast<const char *>(tab); test.cpp:4: erreur: static_cast invalide du type « const unsigned char[5] » au type « const char* »
Seul le reinterpret_cast passe. Non que cela m'embête, mais j'aimerais comprendre...
static_cast sur des pointeurs fonctionne - de et vers void* - entre pointeurs vers des classes ayant un rapport de derivation
En particulier ce n'est pas parce que tu peux faire un static_cast entre deux types que tu peux faire un static_cast entre pointeurs vers ces types (en general, un static_cast peut s'accompagner d'un changement de representation, donc ca semble normal).
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org