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):
/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&)
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.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk