This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [libstdc++ PATH] tr1::bind support


Douglas Gregor wrote:
Hello,

The attached patch introduces support for tr1::bind for libstdc++-v3 (section 3.6 of TR1). Tested against i686-pc-linux-gnu, no regressions. This particular patch is against the main trunk (4.1.0), but I would like to commit to both the main trunk and the 4.0 branch. ChangeLog follows.

Details for those that wish to review the internals:
<snip>
1) It is a function object (with enough smarts to work with result_of), but always takes two parameters: a reference to the bound argument and a tuple of the arguments that were passed to bind. We use a tuple so that we require less repetition. However, it also means that we're limited to passing 10 arguments to bind() because tuple<> accepts at most 10 parameters. See workarounds in, e.g., mu_iterate.h.

I've briefly looked over the library and it seems good at a brief glance :) Note that tuple is going to gain more than 10 parameters, as soon as we decide the best way of macroising things. The two implementations floating around (generate from a C file, which is in 4.0 and I suspect will stay there now, and a preprocessor library) can both cope with more than 10 paraneters.


Does the general opinion seem to be that the system used by the non-tuple tr1 headers (non-intellegent repeated inclusion of header) the best way to go? Or does anyone else have a preference on which way to go? :)

Chris


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]