Opened 10 years ago

Closed 10 years ago

#8102 closed Bugs (fixed)

signals2 is trying to use std::get with boost::tuple

Reported by: Eric Niebler Owned by: Frank Mori Hess
Milestone: Boost 1.54.0 Component: signals2
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:

Description

signals2/detail/variadic_slot_invoker.hpp has the following:

// if compiler has std::tuple use it instead of boost::tuple
// because boost::tuple does not have variadic template support at present.
#ifdef BOOST_NO_CXX11_HDR_TUPLE
#include <boost/tuple/tuple.hpp>
#define BOOST_SIGNALS2_TUPLE boost::tuple
#else
#include <tuple>
#define BOOST_SIGNALS2_TUPLE std::tuple
#endif

Then in place of boost::tuple or std::tuple, it uses BOOST_SIGNALS2_TUPLE. That's dandy, but it unconditionally uses std::get to access elements from the tuple. This naturally leads to compile failures because std::get doesn't know what a boost::tuple is.

Patch attached.

Attachments (1)

std-tuple-get.patch (3.0 KB ) - added by Eric Niebler 10 years ago.
replace std::get with boost::get when <tuple> is not available.

Download all attachments as: .zip

Change History (3)

by Eric Niebler, 10 years ago

Attachment: std-tuple-get.patch added

replace std::get with boost::get when <tuple> is not available.

comment:1 by Frank Mori Hess, 10 years ago

Committed patch to trunk in revision 83041.

comment:2 by Frank Mori Hess, 10 years ago

Resolution: fixed
Status: newclosed

(In [83102]) Merged from trunk. Closes #8102. Closes #8103. Closes #8115.

Note: See TracTickets for help on using tickets.