Closed canon-cmi-william-hachfeld closed 2 months ago
Thanks, I'll look into it. Various compilers have various limitations for what can go into typeid(T)
so it sometimes happens that when I fix one thing, another breaks.
Absolutely. Totally understand, Peter. I appreciate you taking a look at whether there is something that can be done on the Boost side to address this.
Should be fixed by https://github.com/boostorg/core/commit/965508d9e187d589070c5cd1853cc035b51ea3cf.
Fantastic. Thank you, @pdimov, for addressing this so quickly!
I believe this change made by @pdimov has broken
typeid_name
for abstract base classes (at least when compiling with MSVC 19.39). Consider the following minimal repro case:Compiling this with MSVC using the Boost >= 1.83.0 version yields:
But using the earlier implementation from Boost 1.82.0 compile fine:
I must admit I don't quite understand what the
int T::*
syntax is supposed to do exactly, so I'm unclear whether the Microsoft compiler itself could be at fault here. So please do let me know if you believe this is a compiler bug rather than an issue with the code itself. In which case I'll report the issue to Microsoft instead. Thanks in advance for taking a look!