Partage
  • Partager sur Facebook
  • Partager sur Twitter

Utiliser sfinae après la déclaration d'1 fonction

    10 avril 2022 à 19:23:26

    Bonjour!

    Je souhaiteras faire ceci :

    template <typename... Signature, typename TupleType, typename System, size_t... I, typename... Params, typename R>
                    void apply_impl(EntityId entityId, TupleType& tpl, System& system, std::tuple<Params...>& params, std::index_sequence<I...>, std::vector<R>& rets) -> typename std::enable_if_t<(tpl.nbTypes() == 0)> {
                    }
                    template <typename... Signature, typename TupleType, typename System, size_t... I, typename... Params, typename R, class... D>>
                    void apply_impl(EntityId entityId, TupleType& tpl, System& system, std::tuple<Params...>& params, std::index_sequence<I...>, std::vector<R>& rets)  -> typename std::enable_if_t<(tpl.nbTypes() > 0)> {
                        auto tp = std::make_tuple(getAgregate<std::tuple_element_t<I, std::tuple<Signature...>>>(tpl, entityId)...);
                        rets.push_back(system(tp, entityId, params));
                    }

    Mais j'ai une erreur de compilation :

    /home/laurent/gitODFAEG/Demos/ODFAEGECSDemo/../../ODFAEG/include/odfaeg/Graphics/ECS/../../Core/ecs.hpp|336|error: template argument 1 is invalid|

    Comment faire cela ?

    Merci.


    • Partager sur Facebook
    • Partager sur Twitter

    Utiliser sfinae après la déclaration d'1 fonction

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown