Konvertierung von builtin-Array zu std::array ohne Overhead



  • Hoi! 🙂

    template<typename CharT, std::size_t Size>
    std::array<CharT, Size> const&
    to_safe_array(const CharT(&in)[Size])
    {
       return reinterpret_cast<std::array<CharT, Size> const&>(in);
    }
    

    Was sagt der Standard dazu? Mit dem GCC funktioniert es zumindestens prächtig.

    Danke und Grüße,
    Ethon



  • Ethon schrieb:

    Was sagt der Standard dazu?

    Der sagt, dass std::array<T, N> und T[N] layout-kompatibel sind - d.h. dass das funktionieren sollte.



  • pumuckl schrieb:

    Ethon schrieb:

    Was sagt der Standard dazu?

    Der sagt, dass std::array<T, N> und T[N] layout-kompatibel sind - d.h. dass das funktionieren sollte.

    Super, Danke.


  • Mod

    pumuckl schrieb:

    Ethon schrieb:

    Was sagt der Standard dazu?

    Der sagt, dass std::array<T, N> und T[N] layout-kompatibel sind - d.h. dass das funktionieren sollte.

    sofern T standard-layout hat.


Anmelden zum Antworten