Unreal Engine 4.24.3: 在头文件中声明 TArray<FString> 时没有构造函数实例出错

Unreal Engine 4.24.3: No instance of constructor Error when declaring TArray<FString> in a header file

我一直在尝试创建一个头文件来声明 FStrings 的 TArray,但不断收到以下编译器错误:

"C++ no instance of constructor matches the argument list argument types are: (const wchar_t [6], const wchar_t [6], const wchar_t [6], const wchar_t [6], const wchar_t [6])"

我已经阅读了 Unreal here 关于声明和初始化 TArray 无济于事的文档:https://docs.unrealengine.com/en-US/Programming/UnrealArchitecture/TArrays/index.html

const TArray<FString> WordList;
WordList.Add("test");

尝试此操作时,编译器抛出错误,指出没有存储 class 或类型说明符。

在 Unreal 的头文件中声明 TArray 的正确方法是什么?

 #include "CoreMinimal.h"


const TArray<FString> WordList = { 
TEXT("chart"),
TEXT("quest"),
TEXT("crows"),
TEXT("bears"),
TEXT("loves") };

它看起来没问题,它在我的 VStudio 中编译,我不确定那个错误,但准确地说,错误说你创建了一个包含 "FString" 个项目的 TArray 并且你正在添加 TEXT("abcd") 类型为 "wchar_t*"。 试试这个:

#include "CoreMinimal.h"
const TArray<wchar_t*> WordList = { 
TEXT("chart"),
TEXT("quest"),
TEXT("crows"),
TEXT("bears"),
TEXT("loves") };

#include "CoreMinimal.h"
const TArray<FString> WordList = { 
"chart",
"quest",
"crows",
"bears",
"loves" };

以下代码仅适用于 .cpp 文件,您应该删除 const 以使用 Add:

TArray<FString> WordList;
WordList.Add("test");