Why UTakeRecorderSources are private but exposed to BP?

Is there a reason why UTakeRecorderSources like UTakeRecorderActorSource are private but exposed to BP? I would like to use them in c++ modules but I can’t, or can I? Is there a way how to link them although they are private?

I have found a way how to call functions from private directories and not exposed API. It is possible through CallFunctionByNameWithArguments function, but I haven’t found a way how to properly set up FOutputDevice which is one of the arguments. Do you know about any article related to this particular problem?

I have similar problem. I want to use UTakeRecorderActorSource to add an actor to the take recorder in C++. And I cannot compile it sucessfully. It seems that the code cannot recognize UTakeRecorderActorSource evenif I included the head file and added module name in the Build.cs file. Wait for somebody can help me.