http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55169



             Bug #: 55169

           Summary: std::discrete_distribution::operator(generator&) makes

                    unnecessary copy of parameter vector

    Classification: Unclassified

           Product: gcc

           Version: 4.7.1

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: libstdc++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: chri.sn...@gmail.com





Created attachment 28592

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28592

demonstration of slow std::discrete_distribution in GCC



std::discrete_distribution::operator()(generator&) is significantly slower than

directly calling operator()(generator&, const param_type&), which it delegates

to.  This is because, on random.h:4805, this->param() returns a copy rather

than a const reference.



The attached file is a simple test demonstrating this inefficient behaviour.

Reply via email to