[utility] base_from_member variadic template error on gcc-4.6.0 c++0x

Hi, I'm getting the following compiler error. gcc.compile.c++ ..\..\..\bin.v2\libs\chrono\test\stopwatch_reporter_example_h.test\gcc-mingw-4.6.0x\debug\stopwatch_reporter_example.o In file included from ..\..\../boost/format/alt_sstream.hpp:20:0, from ..\..\../boost/format/internals.hpp:23, from ..\..\../boost/format.hpp:38, from ..\..\../boost/chrono/stopwatches/formatters/elapsed_formatter.hpp:13, from ..\..\../boost/chrono/stopwatches/reporters/clock_default_formatter.hpp:11, from ..\..\../boost/chrono/stopwatches/reporters/stopwatch_reporter_default_formatter.hpp:11, from ..\..\../boost/chrono/stopwatches/reporters/stopwatch_reporter.hpp:23, from ..\example\stopwatch_reporter_example.cpp:10: ..\..\../boost/utility/base_from_member.hpp: In constructor 'boost::io::basic_oaltstringstream<Ch, Tr, Alloc>::basic_oaltstringstream(boost::io::basic_oaltstringstream<Ch, Tr, Alloc>::stringbuf_t*) [with Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, boost::io::basic_oaltstringstream<Ch, Tr, Alloc>::stringbuf_t = boost::io::basic_altstringbuf<char, std::char_traits<char>, std::allocator<char> >]': ..\..\../boost/format/feed_args.hpp:175:57: instantiated from 'void boost::io::detail::put(T, const boost::io::detail::format_item<Ch, Tr, Alloc>&, typename boost::basic_format<Ch, Tr, Alloc>::string_type&, typename boost::basic_format<Ch, Tr, Alloc>::internal_streambuf_t&, boost::io::detail::locale_t*) [with Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, T = const boost::io::detail::put_holder<char, std::char_traits<char> >&, typename boost::basic_format<Ch, Tr, Alloc>::string_type = std::basic_string<char>, typename boost::basic_format<Ch, Tr, Alloc>::internal_streambuf_t = boost::io::basic_altstringbuf<char, std::char_traits<char>, std::allocator<char> >, boost::io::detail::locale_t = std::locale]' ..\..\../boost/format/feed_args.hpp:286:17: instantiated from 'void boost::io::detail::distribute(boost::basic_format<Ch, Tr, Alloc>&, T) [with Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, T = const boost::io::detail::put_holder<char, std::char_traits<char> >&]' ..\..\../boost/format/feed_args.hpp:296:9: instantiated from 'boost::basic_format<Ch, Tr, Alloc>& boost::io::detail::feed_impl(boost::basic_format<Ch, Tr, Alloc>&, T) [with Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, T = const boost::io::detail::put_holder<char, std::char_traits<char> >&]' ..\..\../boost/format/feed_args.hpp:308:95: instantiated from 'boost::basic_format<Ch, Tr, Alloc>& boost::io::detail::feed(boost::basic_format<Ch, Tr, Alloc>&, T) [with Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, T = const boost::io::detail::group1<boost::io::detail::group4<std::ios_base& (*)(std::ios_base&), std::_Setprecision, boost::chrono::duration_fmt, const boost::chrono::duration<double, boost::ratio<1ll, 1000ll> >&>
&]' ..\..\../boost/format/format_class.hpp:64:74: instantiated from 'boost::basic_format<Ch, Tr, Alloc>& boost::basic_format<Ch, Tr, Alloc>::operator%(const T&) [with T = boost::io::detail::group1<boost::io::detail::group4<std::ios_base& (*)(std::ios_base&), std::_Setprecision, boost::chrono::duration_fmt, const boost::chrono::duration<double, boost::ratio<1ll, 1000ll> >&> >, Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, boost::basic_format<Ch, Tr, Alloc> = boost::basic_format<char>]' ..\..\../boost/chrono/stopwatches/formatters/elapsed_formatter.hpp:83:9: instantiated from 'void boost::chrono::basic_elapsed_formatter<Ratio, CharT, Traits, Alloc>::operator()(Stopwatch&) [with Stopwatch = boost::chrono::basic_stopwatch_reporter<char, boost::chrono::strict_stopwatch<boost::chrono::steady_clock>, boost::chrono::basic_elapsed_formatter<boost::ratio<1ll, 1000ll>, char> , Ratio = boost::ratio<1ll, 1000ll>, CharT = char, Traits = std::char_traits<char>, Alloc = std::allocator<char>]' ..\..\../boost/chrono/stopwatches/reporters/stopwatch_reporter.hpp:88:9: instantiated from 'void boost::chrono::basic_stopwatch_reporter<CharT, Stopwatch, Formatter>::report() [with CharT = char, Stopwatch = boost::chrono::strict_stopwatch<boost::chrono::steady_clock>, Formatter = boost::chrono::basic_elapsed_formatter<boost::ratio<1ll, 1000ll>, char>]' ..\..\../boost/chrono/stopwatches/reporters/stopwatch_reporter.hpp:82:11: instantiated from 'boost::chrono::basic_stopwatch_reporter<CharT, Stopwatch, Formatter>::~basic_stopwatch_reporter() [with CharT = char, Stopwatch = boost::chrono::strict_stopwatch<boost::chrono::steady_clock>, Formatter = boost::chrono::basic_elapsed_formatter<boost::ratio<1ll, 1000ll>, char>]' ..\..\../boost/chrono/stopwatches/reporters/stopwatch_reporter.hpp:127:11: instantiated from here ..\..\../boost/utility/base_from_member.hpp:135:55: sorry, unimplemented: use of 'type_pack_expansion' in template
"c:/MINGW/gcc-4.6.0S/bin/g++" -ftemplate-depth-128 -std=c++0x -O0 -fno-inline -Wall -pedantic -g -Wextra -Wno-long-long -pedantic -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_USES_MPL_ASSERT -DBOOST_CHRONO_VERSION=2 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -I"..\..\.." -c -o "..\..\..\bin.v2\libs\chrono\test\stopwatch_reporter_example_h.test\gcc-mingw-4.6.0x\debug\stopwatch_reporter_example.o" "..\example\stopwatch_reporter_example.cpp" Is this a know issue? Best, Vicente -- View this message in context: http://boost.2283326.n4.nabble.com/utility-base-from-member-variadic-templat... Sent from the Boost - Dev mailing list archive at Nabble.com.

I'm getting the following compiler error.
[snip]
..\..\../boost/utility/base_from_member.hpp:135:55: sorry, unimplemented: use of 'type_pack_expansion' in template
Sounds like http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48292. Fixed in GCC 4.6.1 and 4.7 series. Regards, Nate

Le 21/01/13 09:22, Nathan Ridge a écrit :
I'm getting the following compiler error.
[snip]
..\..\../boost/utility/base_from_member.hpp:135:55: sorry, unimplemented: use of 'type_pack_expansion' in template Sounds like http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48292. Fixed in GCC 4.6.1 and 4.7 series.
Yes, I know. My concern was if base_from_member shouldn't be updated to be able to work as before the code was changed. Vicente
participants (3)
-
Nathan Ridge
-
Vicente Botet
-
Vicente J. Botet Escriba