Opened 17 years ago

Closed 17 years ago

#419 closed Bugs (None)

Problem with mpl::transform on fusion::tuple

Reported by: solodon Owned by: Aleksey Gurtovoy
Milestone: Component: mpl
Version: None Severity:
Keywords: Cc:

Description

Whenever I try to do something like:

typedef fusion::tuple<char, short, int>  fusion_types;
typedef fusion::tuple<char*,short*,int*> fusion_pointers;

typedef mpl::transform< fusion_types, 
boost::add_pointer<mpl::_1> >::type fusion_result;

I get a compilation error, while the same thing with 
mpl::vector instead of fusion::tuple compiles perfectly 
well.

If I understand the problem right, dispatched 
implementation of push_front on tuples refers 
boost::fusion::meta::push_front, which is forward 
declared but never defined. Is it by design or was it left 
to add implementation later?

Another thing you might want to check (not directly 
related to this) is that tuple iterator does not define 
iterator category, that was required by some mpl 
algorithms.

I've got here GCC 3.4 (under Linux FC3) and boost 1.32 
taken from boost CVS.

See attachment for the program to reproduce the 
problem (uncomment two last lines) and compilation log.

Change History (1)

comment:1 by Joel de Guzman, 17 years ago

Status: assignedclosed
Logged In: YES 
user_id=237817

It is a bug. For now, please include this somewhere:

#include <boost/spirit/fusion/algorithm/push_front.hpp>
#include <boost/spirit/fusion/sequence/generate.hpp>

These are the files that are needed.
Note: See TracTickets for help on using tickets.