Boost logo

Boost Users :

From: Geoffrey Romer (geoff.romer_at_[hidden])
Date: 2005-10-07 10:02:13


I'm having trouble with insert<> as called on a set. Specifically, it
doesn't seem to be possible to iterate over sets built with insert<>.
The following code, for example, works correctly (or at least,
compiles without errors):

---
typedef set<double, char> m_set;
typedef transform<m_set, lambda<identity<_1> > >::type result;
---
but the following (which as I understand it should be equivalent)
fails to compile:
---
typedef insert<insert<set<>, double>::type, char>::type m_set;
typedef transform<m_set, lambda<identity<_1> > >::type result;
---
The error consists basically of the compiler complaining there's no
member type next_ in set<mpl_::na, mpl_::na ...>. I've provided the
full error log in an attachment (I'm using g++ 4.0.2 and Boost
1.33.0). The bug isn't specific to transform; I've encountered it when
using other algorithms when they iterate over a set built with
inserts.
It's possible this problem relates to the problem discussed in this
message: (http://thread.gmane.org/gmane.comp.lib.boost.devel/116988),
which also concerns non-identical behavior for sets built with the two
methods.
I hope I'm not doing something stupid, I'm starting to feel like a
broken record here...





Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net