Program Listing for File gsl_discrete.hpp

Return to documentation for file (fwdpp/gsl_discrete.hpp)

#ifndef __FWDPP_INTERNAL_GSL_DISCRETE_HPP__
#define __FWDPP_INTERNAL_GSL_DISCRETE_HPP__

#include <gsl/gsl_randist.h>
#include <memory>

namespace fwdpp
{
    namespace detail
    {
        struct gsl_ran_discrete_t_deleter
        {
            void
            operator()(gsl_ran_discrete_t *l) noexcept
            {
                gsl_ran_discrete_free(l);
            }
        };
    } // namespace detail

    using gsl_ran_discrete_t_ptr
        = std::unique_ptr<gsl_ran_discrete_t, detail::gsl_ran_discrete_t_deleter>;
} // namespace fwdpp

#endif