Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost.Function in 1.37.0
From: OvermindDL1 (overminddl1_at_[hidden])
Date: 2008-12-15 19:15:20


On Mon, Dec 15, 2008 at 1:09 PM, asio_user <asonawane_at_[hidden]> wrote:
>
> Actually, there is no code to reproduce this. The errors occur within one of
> the projects which complies ok with boost 1.36.0. I am not yet sure how does
> boost.function get referenced through the headers or what might have changed
> in boost 1.37 compared to 1.36 headers
>
>
>
> Dhruva Krishnamurthy-2 wrote:
>>
>> Could you possibly send a small reproducer code. Since I have a setup
>> of BOOST 1.37 with MSVC, MinGW and on GNU/Linux, I can test it.
>>
>> -dhruva
>>
>> 2008/12/13 Amit Sonawane <asonawane_at_[hidden]>:
>>> Environment:
>>>
>>> WinXP SP2/Visual Studio Team System 2005/Boost 1.37.0 32-bit
>>>
>>>
>>>
>>> Using boost.function in Boost 1.37.0 generates several errors. Compiler
>>> extract :
>>>
>>>
>>>
>>> 28>c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(80)
>>> : error C2143: syntax error : missing ';' before 'namespace'
>>>
>>> 28>c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(980)
>>> : error C2838: '()' : illegal qualified name in member declaration
>>>
>>> 28>
>>> c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(80)
>>> : see reference to class template instantiation 'boost::function0<R>'
>>> being
>>> compiled
>>>
>>> 28>c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(995)
>>> : error C2804: binary 'operator ==' has too many parameters
>>>
>>> 28>c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(1002)
>>> : error C2804: binary 'operator !=' has too many parameters
>>>
>>> 28>c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(1098)
>>> : error C2764: 'R' : template parameter not used or deducible in partial
>>> specialization 'boost::function<R(void)>'
>>>
>>> 28>c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(1098)
>>> : error C3412: 'boost::function<R(void)>' : cannot specialize template in
>>> current scope
>>>
>>> 28>c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(90)
>>> : error C2061: syntax error : identifier 'function_buffer'
>>>
>>> 28>
>>> c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(96)
>>> : see reference to class template instantiation
>>> 'boost::boost::detail::function::function_invoker1<FunctionPtr,R,T0>'
>>> being
>>> compiled
>>>
>>> 28>c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(106)
>>> : error C2061: syntax error : identifier 'function_buffer'
>>>
>>> 28>
>>> c:\software\boost\boost_1_37_0\boost_1_37_0\boost\function\function_template.hpp(113)
>>> : see reference to class template instantiation
>>> 'boost::boost::detail::function::void_function_invoker1<FunctionPtr,R,T0>'
>>> being compiled
>>>
>>>
>>>
>>> In Boost 1.36.0 the code complies ok. Is it boost function or my code.

Just for note. I am using WinXP with VS2k5SP1 and my projects have
had not errors appear when I changed to 1.37. If you can make a copy
of your solution and start deleting things until you get to what is
causing the problem, that would help quite a bit.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net