
I get some weird error messages which I don't really understand when I
tried using mpl::pop_back today. The following example (more or less an
exact copy of the one in the documentation):
------------------ start code -----------------
#include

On Fri, 2003-05-16 at 10:09, Tarjei Knapstad wrote:
I get some weird error messages which I don't really understand when I tried using mpl::pop_back today. The following example (more or less an exact copy of the one in the documentation):
------------------ start code -----------------
#include
#include using namespace boost::mpl;
void f() { typedef list
::type ListType; typedef pop_back<ListType>::type PoppedList; } ------------------ end code ----------------------
Just did a bit more testing. pop_front works without a hitch, and so does the "equivalent of" method for pop_back i.e.: typedef erase< ListType, prior< end<ListType>::type >::type >::type PoppedList; So, problem solved for now, but I'd still like to use pop_back and know why it failed... Sincerely, -- Tarjei

Tarjei Knapstad
So, problem solved for now, but I'd still like to use pop_back and know why it failed...
list is like a singly-linked list at runtime: you can't do pop_back() because it's not an O(1) operation. HTH, -- Dave Abrahams Boost Consulting www.boost-consulting.com

On Fri, 2003-05-16 at 18:44, David Abrahams wrote:
Tarjei Knapstad
writes: So, problem solved for now, but I'd still like to use pop_back and know why it failed...
list is like a singly-linked list at runtime: you can't do pop_back() because it's not an O(1) operation.
I see, but does that go for the other mpl containers as well? pop_back fails on all of list, vector, list_c, vector_c and range_c. Can't say I see any good reason to supply an algorithm that's not working with any of the containers ;) Cheers, -- Tarjei

Tarjei Knapstad
On Fri, 2003-05-16 at 18:44, David Abrahams wrote:
Tarjei Knapstad
writes: So, problem solved for now, but I'd still like to use pop_back and know why it failed...
list is like a singly-linked list at runtime: you can't do pop_back() because it's not an O(1) operation.
I see, but does that go for the other mpl containers as well? pop_back fails on all of list, vector, list_c, vector_c and range_c.
pop_back will work on vector[_c] soon. In fact, vector[_c] will probably be implemented as an alias to deque[_c] (coming soon) because there isn't enough savings in having a sequence that's only extensible at the front.
Can't say I see any good reason to supply an algorithm that's not working with any of the containers ;)
It's a temporary condition. Someone convinced Aleksey during the review period that vector ought to supply front- rather than back-extensibility, so that vector might be exchanged with list. We're not sure it was a good choice anymore ;-) HTH, -- Dave Abrahams Boost Consulting www.boost-consulting.com
participants (2)
-
David Abrahams
-
Tarjei Knapstad