El 14/09/2021 a las 8:54, John Emmas via Boost-users escribió:
Sorry Joaquin, I'm not trying to drag this out but I wondered if you
can clarify something for me...
On 09/09/2021 12:16, Joaquin M López Muñoz via Boost-users wrote:
if you mean for the elements to be allowed in both lists at the same
time, use tags:
I emailed our main developer overnight - but he seems to think that
tags are only needed
when building with MSVC. For other compilers (in his case, gcc) he's
under the impression that
elements can exist in both lists simultaneously by using
list_member_hook<> rather than tags.
You can also have multiinsertion by using multiple member hooks instead
of multiple
(tagged) base hooks:
https://godbolt.org/z/GanT6dh1c
I'd assumed it'd be the same for any compiler... would you mind
clarifying it for me please?
Thanks again,
Well, the example above works. That said, the last paragraph in
https://www.boost.org/doc/html/intrusive/usage.html#intrusive.usage.usage_member_hook
reads:
"However, member hooks have some implementation limitations: If
there is a virtual
inheritance relationship between the parent and the member hook,
then the distance
between the parent and the hook is not a compile-time fixed value
so obtaining the
address of the parent from the member hook is not possible without
reverse engineering
compiler produced RTTI. Apart from this, the non-standard pointer
to member
implementation for classes with complex inheritance relationships
in MSVC ABI
compatible-compilers is not supported by member hooks since it also
depends on
compiler-produced RTTI information."
So, member hooks won't work (anywhere) if virtual inheritance is used
or, in MSVC, in
some unspecified "complex inheritance" scenarios. What those scenarios
are you should
ask Ion, I guess.
So far, most of our interchange have referred back to the documentation,
which, IMHO,
is pretty good. Do your developers have any problem with Boost.Intrusive
docs that may
point at their improvement? Why don't they try things (like whether MSVC
works or not
with meber hooks) on their own?
Best
Joaquín M López Muñoz
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users