Boost logo

Boost :

Subject: Re: [boost] [interprocess] Compile problem with 1.39 and trunk
From: Schrader, Glenn (gschrad_at_[hidden])
Date: 2009-08-25 12:55:21


The attached file produces the problem that I'm having. It compiles fine using 1.36 thru 1.38. When I use 1.39 or trunk I get the following errors (gcc 4.2.3 on 64bit Fedora 9):

<COMPILER_OUTPUT>

/data/rosa2/build/boost/ins_boost_1_39_0_x86_64-unknown-linux-gnu/include/boost/preprocessor/iteration/detail/local.hpp: In member function 'void boost::interprocess::detail::Ctor1Arg<T, is_iterator, P0>::construct(void*, boost::interprocess::detail::false_) [with T = Dummy, bool is_iterator = false, P0 = Abcd]':
/data/rosa2/build/boost/ins_boost_1_39_0_x86_64-unknown-linux-gnu/include/boost/preprocessor/iteration/detail/local.hpp:37: instantiated from 'void boost::interprocess::detail::Ctor1Arg<T, is_iterator, P0>::construct_n(void*, size_t, size_t&) [with T = Dummy, bool is_iterator = false, P0 = Abcd]'
test2.cpp:18: instantiated from here
/data/rosa2/build/boost/ins_boost_1_39_0_x86_64-unknown-linux-gnu/include/boost/preprocessor/iteration/detail/local.hpp:37: error: no matching function for call to 'Dummy::Dummy(const Abcd&)'
test2.cpp:9: note: candidates are: Dummy::Dummy(Abcd&)
test2.cpp:7: note: Dummy::Dummy(const Dummy&)

</COMPILER_OUTPUT>

The compile is looking for 'Dummy::Dummy(const Abcd&)' but that constructor parameter is actually non-const. If I change the constructor to take a const parameter then the compile succeeds (which, of course, isn't what I want). Note that the attached test code is boiled down from a more complicated case where I had multiple constructor parameters but was seeing the same effect. Obviously, something changed between 1.38 and 1.39.

Thanks,

--glenn




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk