
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