[PATCH] D139973: [llvm] Make llvm::Any similar to std::any

Sergei Barannikov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 19 03:58:47 PST 2022


barannikov88 added a comment.

In D139973#4004408 <https://reviews.llvm.org/D139973#4004408>, @jsilvanus wrote:

> I just checked on Godbolt that gcc 12.2 with libstdc++, clang 15.0 with both libstd++ and libc++ and MSVC 19.33 support `std::any` without RTTI. 
> But gcc and clang do not provide `std::any::type` without RTTI though.
>
> Are you aware of any documentation on what can be relied on without RTTI?

It is surprising to me that std::any can work without RTTI. Never thought it could be implemented.
This "compare function pointer" trick is awesome, but it might not always work as explained in this <https://github.com/gcc-mirror/gcc/commit/aa573a6a3e165632103f2f8defb9768106db6a61> commit.
This question <https://stackoverflow.com/questions/45290296/stdany-across-shared-library-bounding-in-mingw> however, suggest that any_cast doesn't always work with RTTI either, which is weird.
I don't know of any other potential issues. std::visitor can't be used with std::any in absense of std::any::type, but that's minor, I think.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139973/new/

https://reviews.llvm.org/D139973



More information about the cfe-commits mailing list