x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

How to make USTRUCT with parent object?

Hello.

I want to make USTRUCT, that can have parent object with same type:

 USTRUCT(BlueprintType)
 struct RETARGETTEST_API FMYJOINT
 {
     GENERATED_USTRUCT_BODY()
 
 
         UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
         FString name = "";
 
 
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
         bool isRoot = false;
 
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
         TArray<float> offset;
 
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
         TArray<FString> channels;
 
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
         FMYJOINT parentJoint;
 
 };


The problem is code

     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
         FMYJOINT parentJoint;

It gets error

 Error c:\users\arturlwww\documents\unreal projects\retargettest\source\retargettest\MyStaticMeshActor.h(28)  : error C2460: 'FMYJOINT::parentJoint' : uses 'FMYJOINT', which is being defined
 Error C:\Users\ArtUrlWWW\Documents\Unreal Projects\RetargetTest\Source\RetargetTest\MyStaticMeshActor.h(28)  : error C2460: 'FMYJOINT::parentJoint' : uses 'FMYJOINT', which is being defined        c:\users\arturlwww\documents\unreal projects\retargettest\source\retargettest\MyStaticMeshActor.h(10) : see declaration of 'FMYJOINT'

How to fix this issue?

Thank you!

Product Version: UE 4.9
Tags:
more ▼

asked Oct 03 '15 at 02:38 PM in C++ Programming

avatar image

Arthur Khusnutdinov
600 87 89 247

(comments are locked)
10|2000 characters needed characters left

1 answer: sort voted first

C++ does not allow you to do this. FMYJOINT is an incomplete type until the closing brace of its declaration.

The normal way around this is to use a pointer to the type instead (that works as a pointer to a type is always the same size, so the compiler knows how to deal with that type), however you can't have a pointer to a USTRUCT based type in a UPROPERTY, so you might need to make your type a UCLASS instead.

 UCLASS(BlueprintType)
 class UMYJOINT : public UObject
 {
     GENERATED_BODY()
 
 public:
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
     FString name = "";
 
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
     bool isRoot = false;
 
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
     TArray<float> offset;
 
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
     TArray<FString> channels;
 
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LifeSim|GWorld")
     UMYJOINT* parentJoint;
 };
more ▼

answered Oct 04 '15 at 06:19 PM

avatar image

Jamie Dale STAFF
7.3k 176 66 304

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question