|
Boost : |
From: Howard Hinnant (hinnant_at_[hidden])
Date: 2005-12-11 14:52:32
On Dec 11, 2005, at 10:49 AM, Arkadiy Vertleyb wrote:
> Then is it possible to take a look inside, and see what is so
> specific about
> binder "extension" that causes the problem with this particular
> templates?
Peter hit the nail on the head (as usual).
> Unless the compiler has a bug, the only explanation is nonstandard
> default
> arguments.
template <class Operation, class T = typename
Metrowerks::remove_reference<Operation>::type::first_argument_type>
class binder1st ...
It is wrapped in:
#ifdef _MSL_EXTENDED_BINDERS
with the standard version in the #else. _MSL_EXTENDED_BINDERS is
defined by default in <mslconfig> which every CodeWarrior std C++
header includes.
The intent was to create a binder1st that could hold the operation by
reference if desired in order to avoid copies of expense-to-copy
predicates (such as those holding a container to compare to).
tr1::ref is probably a better solution to that problem, as is
tr1::bind. Consider this a failed experiment on my part.
-Howard
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk