UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IsCharEncodingCompatibleWith.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>
6#include "Traits/IsCharType.h"
7
8#ifndef PLATFORM_TCHAR_IS_CHAR16
9 #error "Traits/IsCharEncodingCompatibleWith.h should be included after platform headers"
10#endif
11
12namespace UE::Core::Private
13{
14 template <typename SrcEncoding, typename DestEncoding>
16 {
18 {
19 return false;
20 }
21 else if constexpr (std::is_same_v<SrcEncoding, DestEncoding>)
22 {
23 return true;
24 }
25 else if constexpr (std::is_same_v<SrcEncoding, ANSICHAR> && std::is_same_v<DestEncoding, UTF8CHAR>)
26 {
27 return true;
28 }
29 else if constexpr (std::is_same_v<SrcEncoding, UCS2CHAR> && std::is_same_v<DestEncoding, UTF16CHAR>)
30 {
31 return true;
32 }
33 else if constexpr (std::is_same_v<SrcEncoding, WIDECHAR> && std::is_same_v<DestEncoding, UCS2CHAR>)
34 {
35 return true;
36 }
37 else if constexpr (std::is_same_v<SrcEncoding, UCS2CHAR> && std::is_same_v<DestEncoding, WIDECHAR>)
38 {
39 return true;
40 }
41#if PLATFORM_TCHAR_IS_CHAR16
42 else if constexpr (std::is_same_v<SrcEncoding, WIDECHAR> && std::is_same_v<DestEncoding, wchar_t>)
43 {
44 return true;
45 }
46 else if constexpr (std::is_same_v<SrcEncoding, wchar_t> && std::is_same_v<DestEncoding, WIDECHAR>)
47 {
48 return true;
49 }
50#endif
51 else
52 {
53 return false;
54 }
55 };
56}
57
63template <typename SrcEncoding, typename DestEncoding>
65{
66 static constexpr bool Value = UE::Core::Private::IsCharEncodingCompatibleWithImpl<std::remove_cv_t<SrcEncoding>, std::remove_cv_t<DestEncoding>>();
67};
68
69template <typename SrcEncoding, typename DestEncoding>
71
72template <typename SrcEncoding>
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool TIsCharEncodingCompatibleWith_V
Definition IsCharEncodingCompatibleWith.h:70
implementation
Definition PlayInEditorLoadingScope.h:8
constexpr bool IsCharEncodingCompatibleWithImpl()
Definition IsCharEncodingCompatibleWith.h:15
Definition IsCharEncodingCompatibleWith.h:65
static constexpr bool Value
Definition IsCharEncodingCompatibleWith.h:66