Retourner au contenu associé (dépêche : Le langage D)
Posté par LupusMic (site web personnel, Mastodon) le 14 juin 2012 à 00:45. En réponse à la dépêche Le langage D. Évalué à 2.
Ce qui te semble est faux : http://www.gotw.ca/publications/mill22.htm
Rien n'empêche le compilateur de le savoir ?
// dude.cpp // c++ -o dude{,.cpp} -Wall -pedantic -std=c++0x #include <iostream> #include <stdexcept> #include <memory> struct People { virtual void joke() throw() = 0 ; } ; struct SkinHead : People { virtual void joke() throw() ; } ; struct Dude : People { virtual void joke() throw() ; } ; int main() { std::shared_ptr<People> arse { new SkinHead } ; arse->joke() ; } void SkinHead::joke() throw() { throw std::logic_error("Racist joke") ; } void Dude::joke() throw() { std::cout << "The usual thing\n" ; }
Si les définitions des fonctions membres ne sont pas dans la même unité de compilation, le compilateur ne pourra pas deviner que People::joke ne lancera jamais d'exception.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: Y'a-t-il encore besoin de nouveaux langages "bas niveau"?
Posté par LupusMic (site web personnel, Mastodon) . En réponse à la dépêche Le langage D. Évalué à 2.
Ce qui te semble est faux : http://www.gotw.ca/publications/mill22.htm
Rien n'empêche le compilateur de le savoir ?
Si les définitions des fonctions membres ne sont pas dans la même unité de compilation, le compilateur ne pourra pas deviner que People::joke ne lancera jamais d'exception.