mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-25 01:41:43 +00:00
Use std::string_view and fmtlib across all libraries (#3402)
- Twine, StringRef, Format, and NativeFormatting have been removed - Logging now uses fmtlib style formatting - Nearly all uses of wpi::outs/errs have been replaced with fmt::print() or std::puts()/std::fputs() (for unformatted strings). - A wpi/fmt/raw_ostream.h header has been added to enable fmt::print() with wpi::raw_ostream
This commit is contained in:
@@ -15,16 +15,15 @@
|
||||
|
||||
namespace wpi {
|
||||
|
||||
std::string Demangle(const Twine& mangledSymbol) {
|
||||
std::string Demangle(std::string_view mangledSymbol) {
|
||||
static wpi::mutex m;
|
||||
std::scoped_lock lock(m);
|
||||
SmallString<128> buf;
|
||||
SmallString<128> buf{mangledSymbol};
|
||||
char buffer[256];
|
||||
DWORD sz =
|
||||
UnDecorateSymbolName(mangledSymbol.toNullTerminatedStringRef(buf).data(),
|
||||
buffer, sizeof(buffer), UNDNAME_COMPLETE);
|
||||
DWORD sz = UnDecorateSymbolName(buf.c_str(), buffer, sizeof(buffer),
|
||||
UNDNAME_COMPLETE);
|
||||
if (sz == 0)
|
||||
return mangledSymbol.str();
|
||||
return std::string{mangledSymbol};
|
||||
return std::string(buffer, sz);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user