UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TableViewTypeTraits.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "UObject/GCObject.h"
8#include "UObject/FieldPath.h"
9
10class ITableRow;
11struct FSparseItemInfo;
12
17template <typename T, typename Enable = void>
19{
20 enum
21 {
22 Value = false
23 };
24};
25template <typename T>
27{
28 enum
29 {
30 Value = true
31 };
32};
33template <typename T>
35{
36 enum
37 {
38 Value = true
39 };
40};
41template <typename T>
43{
44 enum
45 {
46 Value = true
47 };
48};
49template <typename T>
51{
52 enum
53 {
54 Value = true
55 };
56};
57template <typename T, ESPMode Mode>
58struct TIsValidListItem<TWeakPtr<T, Mode>>
59{
60 enum
61 {
62 Value = true
63 };
64};
65template <typename T>
67{
68 enum
69 {
70 Value = true
71 };
72};
73
74template <typename T>
76{
77 enum
78 {
79 Value = true
80 };
81};
82template <typename T>
84{
85 enum
86 {
87 Value = true
88 };
89};
90template <typename T>
92{
93 enum
94 {
95 Value = true
96 };
97};
98template <typename T>
100{
101 enum
102 {
103 Value = true
104 };
105};
106template <>
108{
109 enum
110 {
111 Value = true
112 };
113};
114
120template <typename T, typename Enable=void> struct TListTypeTraits
121{
122 static_assert(TIsValidListItem<T>::Value, "Item type T must be a UObjectBase pointer, TFieldPath, TSharedRef, TSharedPtr or FName.");
123};
124
125
129template <typename T> struct TListTypeTraits< TSharedPtr<T, ESPMode::NotThreadSafe> >
130{
131public:
133
137
138 template<typename U>
141 TSet< TSharedPtr<T> >&,
142 TMap< const U*, TSharedPtr<T> >& )
143 {
144 }
145
146 static bool IsPtrValid( const TSharedPtr<T>& InPtr )
147 {
148 return InPtr.IsValid();
149 }
150
152 {
153 InPtr.Reset();
154 }
155
157 {
158 return TSharedPtr<T>(nullptr);
159 }
160
165
166 static FString DebugDump( TSharedPtr<T> InPtr )
167 {
168 return InPtr.IsValid() ? FString::Printf(TEXT("0x%08" UPTRINT_x_FMT), (UPTRINT)InPtr.Get()) : FString(TEXT("nullptr"));
169 }
170
171 class SerializerType{};
172};
173
174
175template <typename T> struct TListTypeTraits< TSharedPtr<T, ESPMode::ThreadSafe> >
176{
177public:
179
183
184 template<typename U>
191
193 {
194 return InPtr.IsValid();
195 }
196
198 {
199 InPtr.Reset();
200 }
201
206
211
213 {
214 return InPtr.IsValid() ? FString::Printf(TEXT("0x%08" UPTRINT_x_FMT), (UPTRINT)InPtr.Get()) : FString(TEXT("nullptr"));
215 }
216
217 class SerializerType{};
218};
219
220
221template <typename T> struct TListTypeTraits< TSharedRef<T, ESPMode::NotThreadSafe> >
222{
223public:
225
229
230 template<typename U>
233 TSet< TSharedRef<T> >&,
234 TMap< const U*, TSharedRef<T> >& )
235 {
236 }
237
238 static bool IsPtrValid( const TSharedPtr<T>& InPtr )
239 {
240 return InPtr.IsValid();
241 }
242
244 {
245 InPtr.Reset();
246 }
247
249 {
250 return TSharedPtr<T>(nullptr);
251 }
252
254 {
255 return InPtr.ToSharedRef();
256 }
257
258 static FString DebugDump( TSharedRef<T> InPtr )
259 {
260 return FString::Printf(TEXT("0x%08" UPTRINT_x_FMT), (UPTRINT)&InPtr.Get());
261 }
262
263 class SerializerType{};
264};
265
266
311
312template <typename T> struct TListTypeTraits< TWeakPtr<T, ESPMode::NotThreadSafe> >
313{
314public:
316
320
321 template<typename U>
323 TArray< TWeakPtr<T> >&,
324 TSet< TWeakPtr<T> >&,
325 TMap< const U*, TWeakPtr<T> >& )
326 {
327 }
328
329 static bool IsPtrValid( const TWeakPtr<T>& InPtr )
330 {
331 return InPtr.Pin().IsValid();
332 }
333
334 static void ResetPtr( TWeakPtr<T>& InPtr )
335 {
336 InPtr = nullptr;
337 }
338
340 {
341 return TWeakPtr<T>();
342 }
343
345 {
346 return InPtr;
347 }
348
349 static FString DebugDump( TWeakPtr<T> InPtr )
350 {
351 return InPtr.IsValid() ? FString::Printf(TEXT("0x%08" UPTRINT_x_FMT), (UPTRINT)InPtr.Get()) : FString(TEXT("nullptr"));
352 }
353
354 class SerializerType{};
355};
356
357
358template <typename T> struct TListTypeTraits< TWeakPtr<T, ESPMode::ThreadSafe> >
359{
360public:
362
366
367 template<typename U>
374
376 {
377 return InPtr.Pin().IsValid();
378 }
379
381 {
382 InPtr = nullptr;
383 }
384
389
394
396 {
397 return InPtr.IsValid() ? FString::Printf(TEXT("0x%08" UPTRINT_x_FMT), (UPTRINT)InPtr.Pin().Get()) : FString(TEXT("nullptr"));
398 }
399
400 class SerializerType{};
401};
402
406template <typename T> struct TListTypeTraits< TWeakObjectPtr<T> >
407{
408public:
410
414
415 template<typename U>
418 TSet< TWeakObjectPtr<T> >&,
419 TMap< const U*, TWeakObjectPtr<T> >&)
420 {
421 }
422
423 static bool IsPtrValid( const TWeakObjectPtr<T>& InPtr )
424 {
425 return InPtr.IsValid();
426 }
427
429 {
430 InPtr.Reset();
431 }
432
434 {
435 return nullptr;
436 }
437
442
444 {
445 T* ObjPtr = InPtr.Get();
446 return ObjPtr ? FString::Printf(TEXT("0x%08" UPTRINT_x_FMT " [%s]"), (UPTRINT)ObjPtr, *ObjPtr->GetName()) : FString(TEXT("nullptr"));
447 }
448
449 class SerializerType{};
450};
451
452
456template <typename T> struct TListTypeTraits< TObjectPtr<T> >
457{
458public:
460
464
465 template<typename U>
467 TArray<TObjectPtr<T>>& ItemsWithGeneratedWidgets,
468 TSet<TObjectPtr<T>>& SelectedItems,
469 TMap< const U*, TObjectPtr<T> >& WidgetToItemMap)
470 {
471 // Serialize generated items
472 Collector.AddReferencedObjects(ItemsWithGeneratedWidgets);
473
474 // Serialize the map Value. We only do it for the WidgetToItemMap because we know that both maps are updated at the same time and contains the same objects
475 // Also, we cannot AddReferencedObject to the Keys of the ItemToWidgetMap or we end up with keys being set to 0 when the UObject is destroyed which generate an invalid id in the map.
476 for (auto& It : WidgetToItemMap)
477 {
478 Collector.AddReferencedObject(It.Value);
479 }
480
481 // Serialize the selected items
482 Collector.AddReferencedObjects(SelectedItems);
483 }
484
485 static bool IsPtrValid( const TObjectPtr<T>& InPtr )
486 {
487 return InPtr != nullptr;
488 }
489
491 {
492 InPtr = nullptr;
493 }
494
496 {
497 return nullptr;
498 }
499
504
506 {
507 return InPtr ? FString::Printf(TEXT("0x%08" UPTRINT_x_FMT " [%s]"), (UPTRINT)InPtr.Get(), *InPtr->GetName()) : FString(TEXT("nullptr"));
508 }
509
511};
512
513
519template <typename T>
521{
522public:
523 typedef T* NullableType;
524
528
529 template<typename U>
531 TArray<TObjectPtr<T>>& ItemsWithGeneratedWidgets,
532 TSet<TObjectPtr<T>>& SelectedItems,
533 TMap< const U*, TObjectPtr<T> >& WidgetToItemMap)
534 {
535 // Serialize generated items
536 Collector.AddReferencedObjects(ItemsWithGeneratedWidgets);
537
538 // Serialize the map Value. We only do it for the WidgetToItemMap because we know that both maps are updated at the same time and contains the same objects
539 // Also, we cannot AddReferencedObject to the Keys of the ItemToWidgetMap or we end up with keys being set to 0 when the UObject is destroyed which generate an invalid id in the map.
540 for (auto& It : WidgetToItemMap)
541 {
542 Collector.AddReferencedObject(It.Value);
543 }
544
545 // Serialize the selected items
546 Collector.AddReferencedObjects(SelectedItems);
547 }
548
549 static bool IsPtrValid( T* InPtr ) { return InPtr != nullptr; }
550
551 static void ResetPtr( T*& InPtr ) { InPtr = nullptr; }
552
553 static T* MakeNullPtr() { return nullptr; }
554
556
557 static FString DebugDump( T* InPtr )
558 {
559 return InPtr ? FString::Printf(TEXT("0x%08" UPTRINT_x_FMT " [%s]"), (UPTRINT)InPtr, *InPtr->GetName()) : FString(TEXT("nullptr"));
560 }
561
563};
564
565template <typename T>
567{
568public:
569 typedef const T* NullableType;
570
574
575 template<typename U>
577 TArray<TObjectPtr<const T>>& ItemsWithGeneratedWidgets,
578 TSet<TObjectPtr<const T>>& SelectedItems,
580 {
581 // Serialize generated items
582 Collector.AddReferencedObjects(ItemsWithGeneratedWidgets);
583
584 // Serialize the map Value. We only do it for the WidgetToItemMap because we know that both maps are updated at the same time and contains the same objects
585 // Also, we cannot AddReferencedObject to the Keys of the ItemToWidgetMap or we end up with keys being set to 0 when the UObject is destroyed which generate an invalid id in the map.
586 for (auto& It : WidgetToItemMap)
587 {
588 Collector.AddReferencedObject(It.Value);
589 }
590
591 // Serialize the selected items
592 Collector.AddReferencedObjects(SelectedItems);
593 }
594
595 static bool IsPtrValid( const T* InPtr ) { return InPtr != nullptr; }
596
597 static void ResetPtr( const T*& InPtr ) { InPtr = nullptr; }
598
599 static const T* MakeNullPtr() { return nullptr; }
600
601 static const T* NullableItemTypeConvertToItemType( const T* InPtr ) { return InPtr; }
602
603 static FString DebugDump( const T* InPtr )
604 {
605 return InPtr ? FString::Printf(TEXT("0x%08" UPTRINT_x_FMT " [%s]"), (UPTRINT)InPtr, *InPtr->GetName()) : FString(TEXT("nullptr"));
606 }
607
609};
610
611
615template <typename T> struct TListTypeTraits< TFieldPath<T> >
616{
617public:
619
623
624 template<typename U>
626 TArray< TFieldPath<T> >& ItemsWithGeneratedWidgets,
627 TSet< TFieldPath<T> >& SelectedItems,
628 TMap< const U*, TFieldPath<T> >& WidgetToItemMap)
629 {
630 for (TFieldPath<T>& Item : ItemsWithGeneratedWidgets)
631 {
632 if (Item != nullptr)
633 {
634 Item->AddReferencedObjects(Collector);
635 }
636 }
637
638 // Serialize the map Value. We only do it for the WidgetToItemMap because we know that both maps are updated at the same time and contains the same objects
639 // Also, we cannot AddReferencedObject to the Keys of the ItemToWidgetMap or we end up with keys being set to 0 when the UObject is destroyed which generate an invalid id in the map.
640 for (auto& It : WidgetToItemMap)
641 {
642 if (It.Value != nullptr)
643 {
644 It.Value->AddReferencedObjects(Collector);
645 }
646 }
647
648 // Serialize the selected items
649 for (TFieldPath<T>& Item : SelectedItems)
650 {
651 if (Item != nullptr)
652 {
653 Item->AddReferencedObjects(Collector);
654 }
655 }
656 }
657
658 static bool IsPtrValid(const TFieldPath<T>& InPtr)
659 {
660 return !!InPtr.Get();
661 }
662
664 {
665 InPtr.Reset();
666 }
667
669 {
670 return nullptr;
671 }
672
677
679 {
680 T* ObjPtr = InPtr.Get();
681 return ObjPtr ? FString::Printf(TEXT("0x%08" UPTRINT_x_FMT " [%s]"), (UPTRINT)ObjPtr, *ObjPtr->GetName()) : FString(TEXT("nullptr"));
682 }
683
684 class SerializerType {};
685};
686
690template <>
692{
693public:
695
699
700 template<typename U>
702 TArray<FName>& ItemsWithGeneratedWidgets,
703 TSet<FName>& SelectedItems,
705 {
706 }
707
708 static bool IsPtrValid(const FName& InValue)
709 {
710 return !InValue.IsNone();
711 }
712
713 static void ResetPtr(FName& InValue)
714 {
715 InValue = FName();
716 }
717
719 {
720 return FName();
721 }
722
724 {
725 return InValue;
726 }
727
728 static FString DebugDump(FName InValue)
729 {
730 return InValue.ToString();
731 }
732
733 class SerializerType {};
734};
#define UPTRINT_x_FMT
Definition AndroidPlatformString.h:54
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::UPTRINT UPTRINT
An unsigned integer the same size as a pointer.
Definition Platform.h:1146
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ESPMode
Definition SharedPointerFwd.h:12
Definition GCObject.h:128
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
Definition ITableRow.h:15
Definition Array.h:670
Definition EnableIf.h:20
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
Definition SetUtilities.h:36
Definition STreeView.h:22
Definition Map.h:111
Definition FieldPath.h:283
Definition TableViewTypeTraits.h:19
@ Value
Definition TableViewTypeTraits.h:22
static FName NullableItemTypeConvertToItemType(const FName &InValue)
Definition TableViewTypeTraits.h:723
FName NullableType
Definition TableViewTypeTraits.h:694
static FName MakeNullPtr()
Definition TableViewTypeTraits.h:718
static void AddReferencedObjects(FReferenceCollector &Collector, TArray< FName > &ItemsWithGeneratedWidgets, TSet< FName > &SelectedItems, TMap< const U *, FName > &WidgetToItemMap)
Definition TableViewTypeTraits.h:701
static void ResetPtr(FName &InValue)
Definition TableViewTypeTraits.h:713
static FString DebugDump(FName InValue)
Definition TableViewTypeTraits.h:728
static bool IsPtrValid(const FName &InValue)
Definition TableViewTypeTraits.h:708
TFieldPath< T > NullableType
Definition TableViewTypeTraits.h:618
static bool IsPtrValid(const TFieldPath< T > &InPtr)
Definition TableViewTypeTraits.h:658
static TFieldPath< T > NullableItemTypeConvertToItemType(const TFieldPath< T > &InPtr)
Definition TableViewTypeTraits.h:673
static FString DebugDump(TFieldPath< T > InPtr)
Definition TableViewTypeTraits.h:678
static void ResetPtr(TFieldPath< T > &InPtr)
Definition TableViewTypeTraits.h:663
static TFieldPath< T > MakeNullPtr()
Definition TableViewTypeTraits.h:668
static void AddReferencedObjects(FReferenceCollector &Collector, TArray< TFieldPath< T > > &ItemsWithGeneratedWidgets, TSet< TFieldPath< T > > &SelectedItems, TMap< const U *, TFieldPath< T > > &WidgetToItemMap)
Definition TableViewTypeTraits.h:625
static FString DebugDump(TObjectPtr< T > InPtr)
Definition TableViewTypeTraits.h:505
static void ResetPtr(TObjectPtr< T > &InPtr)
Definition TableViewTypeTraits.h:490
TObjectPtr< T > NullableType
Definition TableViewTypeTraits.h:459
static TObjectPtr< T > MakeNullPtr()
Definition TableViewTypeTraits.h:495
static bool IsPtrValid(const TObjectPtr< T > &InPtr)
Definition TableViewTypeTraits.h:485
static TObjectPtr< T > NullableItemTypeConvertToItemType(const TObjectPtr< T > &InPtr)
Definition TableViewTypeTraits.h:500
FGCObject SerializerType
Definition TableViewTypeTraits.h:510
static void AddReferencedObjects(FReferenceCollector &Collector, TArray< TObjectPtr< T > > &ItemsWithGeneratedWidgets, TSet< TObjectPtr< T > > &SelectedItems, TMap< const U *, TObjectPtr< T > > &WidgetToItemMap)
Definition TableViewTypeTraits.h:466
static bool IsPtrValid(const TSharedPtr< T > &InPtr)
Definition TableViewTypeTraits.h:146
static void AddReferencedObjects(FReferenceCollector &, TArray< TSharedPtr< T > > &, TSet< TSharedPtr< T > > &, TMap< const U *, TSharedPtr< T > > &)
Definition TableViewTypeTraits.h:139
static FString DebugDump(TSharedPtr< T > InPtr)
Definition TableViewTypeTraits.h:166
static TSharedPtr< T > NullableItemTypeConvertToItemType(const TSharedPtr< T > &InPtr)
Definition TableViewTypeTraits.h:161
static TSharedPtr< T > MakeNullPtr()
Definition TableViewTypeTraits.h:156
TSharedPtr< T > NullableType
Definition TableViewTypeTraits.h:132
static void ResetPtr(TSharedPtr< T > &InPtr)
Definition TableViewTypeTraits.h:151
static TSharedPtr< T, ESPMode::ThreadSafe > NullableItemTypeConvertToItemType(const TSharedPtr< T, ESPMode::ThreadSafe > &InPtr)
Definition TableViewTypeTraits.h:207
static FString DebugDump(TSharedPtr< T, ESPMode::ThreadSafe > InPtr)
Definition TableViewTypeTraits.h:212
static void ResetPtr(TSharedPtr< T, ESPMode::ThreadSafe > &InPtr)
Definition TableViewTypeTraits.h:197
static bool IsPtrValid(const TSharedPtr< T, ESPMode::ThreadSafe > &InPtr)
Definition TableViewTypeTraits.h:192
static TSharedPtr< T, ESPMode::ThreadSafe > MakeNullPtr()
Definition TableViewTypeTraits.h:202
static void AddReferencedObjects(FReferenceCollector &, TArray< TSharedPtr< T, ESPMode::ThreadSafe > > &, TSet< TSharedPtr< T, ESPMode::ThreadSafe > > &, TMap< const U *, TSharedPtr< T, ESPMode::ThreadSafe > > &WidgetToItemMap)
Definition TableViewTypeTraits.h:185
TSharedPtr< T, ESPMode::ThreadSafe > NullableType
Definition TableViewTypeTraits.h:178
TSharedPtr< T > NullableType
Definition TableViewTypeTraits.h:224
static void AddReferencedObjects(FReferenceCollector &, TArray< TSharedRef< T > > &, TSet< TSharedRef< T > > &, TMap< const U *, TSharedRef< T > > &)
Definition TableViewTypeTraits.h:231
static TSharedRef< T > NullableItemTypeConvertToItemType(const TSharedPtr< T > &InPtr)
Definition TableViewTypeTraits.h:253
static TSharedPtr< T > MakeNullPtr()
Definition TableViewTypeTraits.h:248
static bool IsPtrValid(const TSharedPtr< T > &InPtr)
Definition TableViewTypeTraits.h:238
static void ResetPtr(TSharedPtr< T > &InPtr)
Definition TableViewTypeTraits.h:243
static FString DebugDump(TSharedRef< T > InPtr)
Definition TableViewTypeTraits.h:258
TSharedPtr< T, ESPMode::ThreadSafe > NullableType
Definition TableViewTypeTraits.h:270
static TSharedPtr< T, ESPMode::ThreadSafe > MakeNullPtr()
Definition TableViewTypeTraits.h:294
static bool IsPtrValid(const TSharedPtr< T, ESPMode::ThreadSafe > &InPtr)
Definition TableViewTypeTraits.h:284
static TSharedRef< T, ESPMode::ThreadSafe > NullableItemTypeConvertToItemType(const TSharedPtr< T, ESPMode::ThreadSafe > &InPtr)
Definition TableViewTypeTraits.h:299
static void ResetPtr(TSharedPtr< T, ESPMode::ThreadSafe > &InPtr)
Definition TableViewTypeTraits.h:289
static void AddReferencedObjects(FReferenceCollector &, TArray< TSharedRef< T, ESPMode::ThreadSafe > > &, TSet< TSharedRef< T, ESPMode::ThreadSafe > > &, TMap< const U *, TSharedRef< T, ESPMode::ThreadSafe > > &)
Definition TableViewTypeTraits.h:277
static FString DebugDump(TSharedRef< T, ESPMode::ThreadSafe > InPtr)
Definition TableViewTypeTraits.h:304
static TWeakObjectPtr< T > NullableItemTypeConvertToItemType(const TWeakObjectPtr< T > &InPtr)
Definition TableViewTypeTraits.h:438
static void AddReferencedObjects(FReferenceCollector &, TArray< TWeakObjectPtr< T > > &, TSet< TWeakObjectPtr< T > > &, TMap< const U *, TWeakObjectPtr< T > > &)
Definition TableViewTypeTraits.h:416
static TWeakObjectPtr< T > MakeNullPtr()
Definition TableViewTypeTraits.h:433
static void ResetPtr(TWeakObjectPtr< T > &InPtr)
Definition TableViewTypeTraits.h:428
static FString DebugDump(TWeakObjectPtr< T > InPtr)
Definition TableViewTypeTraits.h:443
TWeakObjectPtr< T > NullableType
Definition TableViewTypeTraits.h:409
static bool IsPtrValid(const TWeakObjectPtr< T > &InPtr)
Definition TableViewTypeTraits.h:423
static void ResetPtr(TWeakPtr< T > &InPtr)
Definition TableViewTypeTraits.h:334
static bool IsPtrValid(const TWeakPtr< T > &InPtr)
Definition TableViewTypeTraits.h:329
static void AddReferencedObjects(FReferenceCollector &, TArray< TWeakPtr< T > > &, TSet< TWeakPtr< T > > &, TMap< const U *, TWeakPtr< T > > &)
Definition TableViewTypeTraits.h:322
static TWeakPtr< T > NullableItemTypeConvertToItemType(const TWeakPtr< T > &InPtr)
Definition TableViewTypeTraits.h:344
static FString DebugDump(TWeakPtr< T > InPtr)
Definition TableViewTypeTraits.h:349
static TWeakPtr< T > MakeNullPtr()
Definition TableViewTypeTraits.h:339
TWeakPtr< T > NullableType
Definition TableViewTypeTraits.h:315
static void ResetPtr(TWeakPtr< T, ESPMode::ThreadSafe > &InPtr)
Definition TableViewTypeTraits.h:380
static FString DebugDump(TWeakPtr< T, ESPMode::ThreadSafe > InPtr)
Definition TableViewTypeTraits.h:395
static TWeakPtr< T, ESPMode::ThreadSafe > MakeNullPtr()
Definition TableViewTypeTraits.h:385
TWeakPtr< T, ESPMode::ThreadSafe > NullableType
Definition TableViewTypeTraits.h:361
static void AddReferencedObjects(FReferenceCollector &, TArray< TWeakPtr< T, ESPMode::ThreadSafe > > &, TSet< TWeakPtr< T, ESPMode::ThreadSafe > > &, TMap< const U *, TWeakPtr< T, ESPMode::ThreadSafe > > &WidgetToItemMap)
Definition TableViewTypeTraits.h:368
static TWeakPtr< T, ESPMode::ThreadSafe > NullableItemTypeConvertToItemType(const TWeakPtr< T, ESPMode::ThreadSafe > &InPtr)
Definition TableViewTypeTraits.h:390
static bool IsPtrValid(const TWeakPtr< T, ESPMode::ThreadSafe > &InPtr)
Definition TableViewTypeTraits.h:375
static void AddReferencedObjects(FReferenceCollector &Collector, TArray< TObjectPtr< T > > &ItemsWithGeneratedWidgets, TSet< TObjectPtr< T > > &SelectedItems, TMap< const U *, TObjectPtr< T > > &WidgetToItemMap)
Definition TableViewTypeTraits.h:530
static const T * NullableItemTypeConvertToItemType(const T *InPtr)
Definition TableViewTypeTraits.h:601
static void AddReferencedObjects(FReferenceCollector &Collector, TArray< TObjectPtr< const T > > &ItemsWithGeneratedWidgets, TSet< TObjectPtr< const T > > &SelectedItems, TMap< const U *, TObjectPtr< const T > > &WidgetToItemMap)
Definition TableViewTypeTraits.h:576
Definition TableViewTypeTraits.h:121
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25