tr1::shared_ptr not implemented in libc++
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
eCAP |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
libecap/
// TODO: add support for boost pointers if std::tr1 is not available
Time has passed, C++11 released, and shared_ptr made it into the standard. Now, we have hit the opposite scenario for users of libc++: it implements the final C++11 standard, and not the "technical report 1" stopgap.
First attempt was to "use std::shared_ptr if available". This didn't work as g++ will claim it isn't available by default unless called with -std=c++11 (or higher). This lead to breakage, as libecap would build without -std=c++11 and contain the symbol
0000000000005278 T libecap:
In my opinion, the main consumer of libecap is squid. Squid requires C++11, so it would then look for RegisterHost(
It seems therefore that the only way to make everyone happy all of the time is for libecap, like squid, to also require C++11, and turn libecap::shared_ptr into std::shared_ptr.
Patch to follow... (You might like to do the cosmetic rename configure.in -> configure.ac thereafter)
Changed in ecap: | |
status: | New → Confirmed |
Library probably needs a major number bump which I forgot! (RegisterHost changes)