FPS Template - FPSCharacter - Camera AllowPrivateAccess meta specifier


Could anyone explain what the meta tag “AllowPrivateAccess” means in the context of the template FPS character’s header when declaring the camera class?


	/** First person camera */
	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
	class UCameraComponent* FirstPersonCameraComponent;

I don’t understand what this means since it isn’t specifically declared privately. I’m trying to remember correctly, but I just want to make sure on this: Isn’t everything private by default unless declared otherwise? If so, then completely disregard my question, I get it. If not, would these types of declarations (outside access modifiers) be considered global? I’m just trying to reverse engineer the template code, so I feel absolutely comfortable working with UE4.


EDIT*: Removed last unnecessary comment as to avoid convincing anyone, who’s struggling with something, that asking questions is something to be embarrassed about. IT’S NOT! Stay humble or remain in the dark, friends. <3

Found the answer in this question: GENERATED_BODY vs GENERATED_UCLASS_BODY (GENERATED_BODY vs GENERATED_UCLASS_BODY - Programming & Scripting - Epic Developer Community Forums)


An excerpt from user Andrii Melnyk’s posted answer, which resolved my original question above:

“The other difference is that, in comparison to GENERATED_UCLASS_BODY(), GENERATED_BODY() doesn’t have the public specifier in it, so any class members that are declared after it are private by default (you can explicitly declare them as public).”