I'm new to Unreal Engine, and I'm trying to declare an inline
function as following:
void inline Print(const char* s) {
UE_LOG(LogTemp, Warning, TEXT("%s"), s);
}
In order to avoid the call to UE_LOG
with LogTemp
and Warning
every time.
When calling for example Print("Hello")
, the output is LogTemp:Warning: 效汬o
.
My guess is something related to the ASCII encoding, but I'm really not sure.
I also tried to use reinterpret_cast
as following:
void inline Print(const char* s) {
UE_LOG(LogTemp, Warning, TEXT("%s"), reinterpret_cast<const TCHAR *>(s));
}
But ended up with same results.
I'd like to know the right way of doing it (I didn't want to use MACRO over inline func), and if there's a simple explanation to what's the reason for the gibberish output, it will also be very useful.
You can't give
const char*
toUE_LOG
, it requiresconst TCHAR*
, also it can't bereinterpret_cast
ed that way, it needs a conversion, but just letFString
handles the dirty work for you. I think you can choose one of the following:1.
2.