Should C++ in UE4 development environment be called EpicC++ or UnrealC++ or should it just be referred to as C++? What do you think?
“C++”, other wise people get confused thinking it is some special language, but in reality this is normal C++ just extra tools that generate extra code.
Asside of UnrealBuildTool (UBT), which controls compilation (Unreal’s make), there tool called UnrealHeaderTool (UHT) which scans for all the UPROPERTY, UCLASS etc. (which are empty macros that C++ compiler will simply ignore) in header files and generate reflection system registration code, to generated.h and gen.cpp and you paste that code to the class struct using GENERATED_BODY(). All of that is actully optional (except UObject classes and some delegates solutions which requires reflected data), if you don’t use it class, varables etc wont be registrated by reflection system and UE4 won’t see it.
Also as much as you should use UE4 APIs and types for maximum compatibility with UE4 code base, they also technically optional and you can use any C++ library, including standard.
So it is normal C++, it use normal C++ compiler, it can compile any C++ code and regardless of any magic you see in UE4 APIs, it is still 100% valid C++ code. But you will see people referring it as “UE4 C++”, because C++ specifications include C++ standard library and because with UE4 you use practically exclusively UE4 APIs some people decide to call it that way, but at the end it later creates quastions in AnwserHub which i need to explain over and over again that C++ in UE4 is nothing special and just normal ordery C++ compiled by VS compiler. I think it also makes people think that this “UE4 C++” is just for game code, where in reality C++ module you making is same as any other engine module from engine code.
What about memory management?