On 15/12/12 15:49, Pieter Hintjens wrote:
The straight C semantics are easiest to map to arbitrary languages.
The C++ binding could have built abstractions on top but never
accomplished this. Ironically the C binding (CZMQ) is somewhat
higher-level than the C++ binding.

-Pieter


Mmm ok but then I have a problem (surely because of me being a novice in C++).
I have this in my class header
/    extern "C" {//
//        #include <zmq.h>//
//        #include <zhelpers.h>//
//    }
    rest of the class declaration follows
/

And I'm linking both the library and the program against libzmq.
Now when the program is run, it fails throwing the following error:
/    terminate called after throwing an instance of 'int'/

Following the calls, I see that my code ends up calling zmq.cpp, so I suppose it fails because of the different objects I'm declaring and using. But I included the C headers, and linked only against libzmq, so I don't understand why I get the cpp library linked.

Exact failing point is in socket_base.cpp at line 323:
/    rc = parse_uri (addr_, protocol, address);
    if (rc != 0)
        return -1;/

Even if rc is effectively 0 (checked in GDB), the if (don't know why) returns true.
I'm at a loss here...

Claudio
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to