- C++20 (g++ & clang++)
- Circle (safe-cpp)
- D (extern(C++))
- Rust (legacy)
url: https://godbolt.org/z/P9EMxWveK
based on: llvm/llvm-project#62765
- gnu:
_ZNK1n1S3getIbEENSt9enable_ifIXsrSt11is_integralIT_E5valueEN4llvm8OptionalIS4_EEE4typeENS6_9StringRefE
- clang:
_ZNK1n1S3getIbEENSt9enable_ifIXsr3std11is_integralIT_EE5valueEN4llvm8OptionalIS3_EEE4typeENS4_9StringRefE
- circle:
_ZNK1n1S3getIbEESt11enable_if_tIXEN4llvm8OptionalIT_EEENS3_9StringRefE
- ldc:
_ZNK1n1S3getIbEEN4llvm8OptionalIbEENS2_9StringRefE
- gdc:
_ZNK1n1S3getIbEEN4llvm8OptionalIbEENS2_9StringRefE
- dmd:
_ZNK1n1S3getIbEEN4llvm8OptionalIbEENS2_9StringRefE
- rustc:
_ZN7example1n1S3get17h871c28d6645bba16E
Note
Circle use custom-mangling, not working in c++filt
or llvm-cxxfilt
(upstream).
C++/GNU
$ c++filt _ZNK1n1S3getIbEENSt9enable_ifIXsrSt11is_integralIT_E5valueEN4llvm8OptionalIS4_EEE4typeENS6_9StringRefE
std::enable_if<std::is_integral<bool>::value, llvm::Optional<bool> >::type n::S::get<bool>(llvm::StringRef) const
C++/clang
$ c++filt _ZNK1n1S3getIbEENSt9enable_ifIXsr3std11is_integralIT_EE5valueEN4llvm8OptionalIS3_EEE4typeENS4_9StringRefE
std::enable_if<std::is_integral<bool>::value, llvm::Optional<bool> >::type n::S::get<bool>(llvm::StringRef) const
D
$ c++filt _ZNK1n1S3getIbEEN4llvm8OptionalIbEENS2_9StringRefE
llvm::Optional<bool> n::S::get<bool>(llvm::StringRef) const
Rust
$ c++filt _ZN7example1n1S3get17h871c28d6645bba16E
example::n::S::get::h871c28d6645bba16