Some C++ classes won't load into content browser

this is a repost from c++ section because it is a bug, and I still have gotten no reply.

####Error Message from ue4 editor:

Successfully added class 'JustinsSlateWidgetStyle', however you must recompile the 'a_OOOO' module before it will appear in the Content Browser. Failed to automatically hot reload the 'a_OOOO' module.

Would you like to open the Output Log to see more details?

##Feedback? Why doesn’t it just load up the new class?
####The Output Log from ue4 editor:

CompilerResultsLog: ERROR: UBT ERROR: Failed to produce item: C:\UE4projects\a_OOOO\Binaries\Win64\UE4Editor-a_OOOO-5413.dll

CompilerResultsLog: (see …/Programs/UnrealBuildTool/Log.txt for full exception trace)

CompilerResultsLog: Total build time: 15.96 seconds (Parallel executor: 0.00 seconds)

LogMainFrame: MainFrame: Module compiling took 16.204 seconds

Warning: HotReload failed, recompile failed

Warning: RebindPackages failed because compilation failed.

LogSlate: Window ‘Message’ being destroyed

LogSlate: Window ‘Add C++ Class’ being destroyed

LogSlate: Took 0.000207 seconds to synchronously load lazily loaded font ‘…/…/…/Engine/Content/Slate/Fonts/DroidSansMono.ttf’ (77K)

LogUnrealEdMisc: Warning: Heartbeat event firing too frequently (0.000 sec). This should never happen. Something is wrong with the timer delegate!

LogUnrealEdMisc: Warning: Heartbeat event firing too frequently (0.000 sec). This should never happen. Something is wrong with the timer delegate!

LogUnrealEdMisc: Warning: Heartbeat event firing too frequently (0.000 sec). This should never happen. Something is wrong with the timer delegate!

LogUnrealEdMisc: Warning: Heartbeat event firing too frequently (0.001 sec). This should never happen. Something is wrong with the timer delegate!

LogUnrealEdMisc: Warning: Heartbeat event firing too frequently (0.001 sec). This should never happen. Something is wrong with the timer delegate!

LogUnrealEdMisc: Warning: Heartbeat event firing too frequently (0.001 sec). This should never happen. Something is wrong with the timer delegate!

LogUnrealEdMisc: Warning: Heartbeat event firing too frequently (0.001 sec). This should never happen. Something is wrong with the timer delegate!

LogUnrealEdMisc: Warning: Heartbeat event firing too frequently (0.001 sec). This should never happen. Something is wrong with the timer delegate!

LogUnrealEdMisc: Warning: Heartbeat event firing too frequently (0.002 sec). This should never happen. Something is wrong with the timer delegate!

In the ‘Visual Studio 2017 Solution Explorer’ image is the c++ files created through the ‘ue4 editor’, you can see the list of files. In the ‘ue4 Content Browser’ image you can see the list of c++ class files that is actually showing up in the ‘content browser’, most of the files are not displaying as they should in the ‘content browser’.

Below is another piece of output log from a blueprint project that I thought was interesting, same problem:

###ResultsLog: Error: UnrealHeaderTool failed for target ‘c_OOOOEditor’ (platform: Win64, module info: C:\UE4projects\c_OOOO\Intermediate\Build\Win64\c_OOOOEditor\Development\c_OOOOEditor.uhtmanifest, exit code: OtherCompilationError (5)).

Here are some links to posts of a similar/same nature:

https://forums.unrealengine.com/development-discussion/c-gameplay-programming/110567-c-classes-not-showing-up-in-content-browser

Hello,

We’ve recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.

https://epicsupport.force.com/unrealengine/s/

Thanks

ok, done, can I get any feedback?

So can I expect a fix in the next release(4.22) so all classes exposed in the ‘New C++ Class…’ tool show up in the ‘Content Browser’ the way they should?

Looking on you other quastion… this is not a bug, the classes you are mentioning are simply not reflected and there for UE4… any other software don’t have any ability to even know about those classes and UE4 can’t place them on Content Browser.

When you compile C or C++ code, they lose all there body, classes technically are only used in compilation process to make sure they generate CPU code that effect only specific type of data structures in memory. There 0 information about the class in the outputed CPU code and program it self can not reconstruct that information. Also function and varbales are turned in to memory addresses, they also luse there names. Code it self need to keep track of classes by making them register themselves on runtime, thats the only way and UE4 only support that on UObjects. “Empty class” and slate classes are not reflected at all, it’s reason why UMG was required to be made and SWidget slate widgets need to be wrapper in to UMG UWidget in order for them to be used in bluieprint. When you compile seperate tool UnrealHeaerTool parses header file and create extra C++ code which resgisters all code elements marked with UMACROS to reflection system, so information about them is stored in memory and UE4 is aware of them.

Any other errors are caused by hot reload issues or compilation issues as logs tells you, if oyu find something reproducable then you should bug raport it, you should also get return email confirming whatever you send is consider a bug if not explaination why.

Also Content Browser is not main C++ class viewer in UE4, that feature been made for BP only users that are used to class as assets set up with Blueprints. There is a lot better tool or class viewing and it is Class Viewer in Windows->Devlopment Tools->Class Viewer, ofcorse same as Content Borwser it is limitted to what reflection systemk can see

Yeah obviously ‘empty class’ is missing important reflection system. The question is just why? You think it is supposed to work like that, but I don’t think so. The ‘Class Viewer’ does not reveal the ‘empty class’ either, but it should.

I was trying to turn the empty class into a ‘Uobject’ but it was not working. Maybe you know the way?

Thanks for the feedback!