Cannot convert argument 1 from 'TEnumAsByte' to 'TEnumAsByte &&

So i am trying to use trace functions by object in c++ and that requires using

TArray < TEnumAsByte < EObjectTypeQuery > >

as one of the arguments.

Now i have those lines of code:

ETraceTypeQuery traceType = ETraceTypeQuery::TraceTypeQuery1;
TEnumAsByte <ETraceTypeQuery> traceTypeAsByte = traceType;

TArray < TEnumAsByte < EObjectTypeQuery > > arrayTraceTypeAsByte;
arrayTraceTypeAsByte.Add(traceTypeAsByte); // error here

and im reciving an error
cannot convert argument 1 from ‘TEnumAsByte’ to 'TEnumAsByte &&

You should declare your array as:

TArray<TEnumAsByte<enum ETraceTypeQuery> > EnumPropertyArray;
EnumPropertyArray.Add(ETraceTypeQuery::TraceTypeQuery1);

Hope this helped!

Cheers,
Moss

1 Like

Now its changed to

cannot convert argument 1 from 'ETraceTypeQuery' to 'TEnumAsByte<EObjectTypeQuery> &&'

Which version are you on? I just tried it on 4.4.3

same here

Which one did you use:

ETraceTypeQuery traceType = ETraceTypeQuery::TraceTypeQuery1;
TEnumAsByte <ETraceTypeQuery> traceTypeAsByte = traceType;
 
TArray < TEnumAsByte < enum ETraceTypeQuery> > arrayTraceTypeAsByte;
 arrayTraceTypeAsByte.Add(traceTypeAsByte); // error here

or

TArray<TEnumAsByte<enum ETraceTypeQuery> > EnumPropertyArray;
EnumPropertyArray.Add(ETraceTypeQuery::TraceTypeQuery1);

Ok i got it
Seems like im blind because i declared an array of EObjectTypeQuery and then i tried to add ETraceTypeQuery to it :expressionless:

Thank you for your help i didn’t noticed the diffrence in your code, i thought that you meant that i have to add enum keyword