UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IsCharEncodingSimplyConvertibleTo.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include <type_traits>
8#include "Traits/IsCharType.h"
9
10namespace UE::Core::Private
11{
12 template <typename SrcEncoding, typename DestEncoding>
14 {
16 {
17 // Binary-compatible conversions are always simple
18 return true;
19 }
20 else if constexpr (TIsFixedWidthCharEncoding_V<SrcEncoding> && sizeof(DestEncoding) >= sizeof(SrcEncoding))
21 {
22 // Converting from a fixed-width encoding to a wider or same encoding should always be possible,
23 // as should ANSICHAR->UTF8CHAR and UCS2CHAR->UTF16CHAR
24 return true;
25 }
26 else
27 {
28 return false;
29 }
30 }
31}
32
36template <typename SrcEncoding, typename DestEncoding>
38{
39 static_assert(TIsCharType<SrcEncoding >::Value, "SrcEncoding is not a character encoding type");
40 static_assert(TIsCharType<DestEncoding>::Value, "DestEncoding is not a character encoding type");
41
42 static constexpr bool Value = UE::Core::Private::IsCharEncodingSimplyConvertibleToImpl<SrcEncoding, DestEncoding>();
43};
44
45template <typename SrcEncoding, typename DestEncoding>
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool TIsCharEncodingSimplyConvertibleTo_V
Definition IsCharEncodingSimplyConvertibleTo.h:46
implementation
Definition PlayInEditorLoadingScope.h:8
constexpr bool IsCharEncodingSimplyConvertibleToImpl()
Definition IsCharEncodingSimplyConvertibleTo.h:13
Definition IsCharEncodingSimplyConvertibleTo.h:38
static constexpr bool Value
Definition IsCharEncodingSimplyConvertibleTo.h:42
Definition IsCharType.h:10