Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]sizeof e templates

    ciao , sto studiando modern c++ design per imparare la metaprogrammazione.
    prima ho letto template the complete guide.
    Mi sono fermato senza capire su questo codice:
    codice:
    template <class To, class From>
    To safe_reinterpret_cast(From from)
    {
    assert(sizeof(From) <= sizeof(To));
    return reinterpret_cast<To>(from);
    }
    serve per fare un cast "sicuro" , in realtà testa il sizeof dei tipi.
    Quello che non capisco è :
    non ci potrebbe essere un tipo della stessa grandezza ma che non centra un pifero con la classe in cui lo vogliocastare?
    ci deve essere sicuramente una spiegazione , o qualcosa che non ho capito.
    Questo uso (del sizeof e dei tipi è usato abbondantemente intutto il libro).

    grazie

  2. #2
    È solo un check di sicurezza che comunque non garantisce molto di più di un normale reinterpret_cast. Diciamo che è una protezione per errori "grossolani".
    (tra l'altro, dato che è tutto noto a compile time, avrebbe più senso uno static_assert)
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [risolto]

    grazie.

  4. #4
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.