• [^] # Re: Sans macro

    Posté par (site web personnel) . En réponse au journal Obfusque ton code avec C++. Évalué à 3.

    J'aurais bien aimé, mais non, la raison étant que si on passe par une fonction template on aurait un truc du genre

    template<class... Ts>
    auto cats(Ts... args) -> decltype(([]() {
     struct _ {
     char const * strings[sizeof...(args)] = {args...};
     const std::array<unsigned, sizeof...(args)> sizes = make_sizes(args...);
     };
     return strcat_helper<_>();}()))

    (parenthèsage non contractuel).

    Dans ce cas le decltype dépend du type de retour de la lambda, ce qui rentre dans la catégorie lambda expression in unevaluated context et c'est interdit. Mais ça passe en c++14 il me semble (vu que le type de retour est inféré).