• [^] # Re: Pas si simple.

    Posté par . En réponse au journal Constexpr versus template. Évalué à 2.

    On peut probablement avoir le beurre et l'argent du beurre en encapsulant la fonction constexpr dans une template. Et potentiellement avec une autre fonction constexpr par dessus pour garder une syntaxe lisible:

    constexpr int count_impl(unsigned n)
    {
     return (n == 0) ? 0 : 1 + count_impl(n - 1);
    }
    template<unsigned N>
    struct count_t
    {
     enum { value = count_impl(N)};
    };
    constexpr int count(unsigned n) { return count_t<N>::value }

    Dans ce cas, la classe sert en quelque sorte de cache.