Попытка использовать конструктора, который присваивает значения и тип числа неудачна=(
Attempting to use a constructor that assigns values and the type of a number fails=(
//Тип динамического целого числа
UENUM(BlueprintType) enum class EUIntD:uint8{I8U,I16UU,I32U,I64U};
//Динамическое целое число
USTRUCT(BlueprintType)structIVS_APIFUIntD{ GENERATED_USTRUCT_BODY()
UPROPERTY(BlueprintReadOnly) FString UIntD;
UPROPERTY(BlueprintReadOnly) EUIntDD=EUIntD::I8U;
uint8S=8;
FUIntD():UIntD(TEXT(“0”)){}
FUIntD(uint64 I):UIntD(UVLbr::I64SToStr(I)){
if(I<256&&D!=EUIntD::I8U){D=EUIntD::I8U; return;}
if(I<65536&&D!=EUIntD::I16U){D=EUIntD::I16U; return;}
if(I<4294967296&&D!=EUIntD::I32U){D=EUIntD::I32U; return;}
//I<=18446744073709551615
if(D!=EUIntD::I64U){D=EUIntD::I64U;}
}
bool operator==(constFUIntD&I)const{return UIntD==I.UIntD && D==I.D;}
bool operator!=(constFUIntD&I)const{return !(*this==I);}
void UIntDSet(FStringI){FUIntD(C);}
auto UIntDGet(){returnFCString::Strtoui64(*UIntD,NULL,20);}
uint8DGet(){
if(D==EUIntD::I8U){D=EUIntD::I8U; return8;}
if(D==EUIntD::I16U){D=EUIntD::I16U; return16;}
if(D==EUIntD::I32U){D=EUIntD::I32U; return32;}
return64;
}
};
//Динамический массив
USTRUCT(BlueprintType)structIVS_APIFStrsD{ GENERATED_USTRUCT_BODY()
FUIntD UIntD;
TArray A;
TArray> F;
FStrsD():UIntD(TEXT(“0”)){}
FStrsD(uint64I):UIntD(UVLbr::I64SToStr(I)){
if(I<256&&D!=EUIntD::I8U){D=EUIntD::I8U; return;}
if(I<65536&&D!=EUIntD::I16U){D=EUIntD::I16U; return;}
if(I<4294967296&&D!=EUIntD::I32U){D=EUIntD::I32U; return;}
//I<=18446744073709551615
if(D!=EUIntD::I64U){D=EUIntD::I64U;}
}
bool operator==(constFStrsD&I)const{returnUIntD==I.UIntD&&A==I.A;}
bool operator!=(constFStrsD&I)const{return!(*this==I);}
voidStrsDSetArrayElement(FUIntDI,FStringV){A[I.UIntDGet()]=V;}
};