Hi qpid users,

I have an interesting issue. In the qpid-cpp examples the following idiom
works to create a Message object on the stack.

        Message m;

This looks like it should be calling an empty constructor but in fact no
such constructor is defined. Instead it's calling this one:

        Message
<https://qpid.apache.org/releases/qpid-0.28/messaging-api/cpp/api/classqpid_1_1messaging_1_1Message.html#a10ceff23ff6fde62d9026fd13bc28662>
(const
std::string &bytes=std::string())

Creating a Message in this way works fine for me in the qpid-cpp examples,
but it throws a std::bad_alloc when I do it from within the Boost test
framework. I hypothesize that it has something to do with the construction
of the defaulted string, but don't know what the details could be.

If from inside the Boost framework,  I create a Message like so:

        qpid::types::Variant v(123);
        qpid::messaging::Message msg(v);

there is no bad_alloc.

Throwing in this dummy Variant is ok as a workaround, but I would love to
know what's going on under the hood. Does anyone have any idea why I might
be getting these bad_allocs?

Thanks,

Andrew

Reply via email to