|
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