https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61451

--- Comment #1 from Eugenio Bargiacchi <svalorzen at gmail dot com> ---
For some reason, if an additional line is added, the error goes away. This
compiles fine:

#include <tuple>

template <typename M>
struct is_generative_model {
    private:
        template <typename Z> static auto test(int) -> decltype(

                static_cast<size_t (Z::*)() const>                      
(&Z::getS),
                static_cast<double      (Z::*)(size_t,size_t) const>     
(&Z::sample),
                static_cast<size_t (Z::*)(size_t,size_t) const>     
(&Z::sample),

                std::true_type()
                );

        template <typename Z> static auto test(...) -> std::false_type;

    public:
        enum { value = std::is_same<decltype(test<M>(0)),std::true_type>::value
};
};

int main() {
    return 0;
}

Reply via email to