Boost logo

Boost :

From: Douglas Gregor (gregod_at_[hidden])
Date: 2001-10-06 15:36:03

On Saturday 06 October 2001 02:27, you wrote:
> Hi guys,
> I am using boost 1.25.0 on a platform (linux/ egcs 1.1.2) that does not
> provide std::allocator. The function library seems to be protected
> against this defect as it makes liberal use of the macro
> BOOST_NO_STD_ALLOCATOR. Unfortunately, even if I define the macro, I get
> a compilation error in function_template.hpp at line 420 (there is a
> similar construct at function.hpp:58)
> template<
> typename Policy = empty_function_policy,
> typename Mixin = empty_function_mixin,
> typename Allocator = std::allocator<function_base> <<<<<<<<<here
> class BOOST_FUNCTION_FUNCTION : public function_base, public Mixin
> the error is obvious, but I haven't been able to ifdef my way out of it.
> Can the authors/experts suggest a workaround or should I just give up
> using the function library?

I don't currently have access to egcs-1.1.2, but it is possible that the
function library will work if "std::allocator<function_base>" to "void" (when
BOOST_NO_STD_ALLOCATOR is defined). I just checked an updated version into
CVS, but essentially I just added:

# define BOOST_FUNCTION_DEFAULT_ALLOCATOR std::allocator<function_base>

to function_template.hpp, along with an

at the end. Then replaced "std::allocator<function_base>" with

I'd be interested to know if this fixes function on egcs-1.1.2.


Boost list run by bdawes at, gregod at, cpdaniel at, john at