BlueprintCallable vs CPF_BlueprintCallable

Hello, I’m kinda new to UE4 so I’m still confused with the macros

Is there any difference between BlueprintCallable and CPF_BlueprintCallable? I was wondering since only the latter appears in IntelliSence when putting in the specifiers for the macros and it’s a hassle to type the whole thing if a similar one is appearing…

If the two are indeed the same, what specifier is used for good practice?

EDIT: Okay, I just found a VS extension for UE4 macros. I’m still curious what the difference is and what the CPF specifiers are used for

Hi. It seems that the CPF prefix are for compilers that can’t handle 64bit enums (As per the comment in ObjectMacros.h):

//
// Flags associated with each property in a class, overriding the
// property's default behavior.
// NOTE: When adding one here, please update ParsePropertyFlags
//
// For compilers that don't support 64 bit enums.
...
#define CPF_BlueprintCallable				DECLARE_UINT64(0x0000100000000000)

Using CPF_BlueprintCallable in place of BlueprintCallable will usually give you a compile error. If you want BlueprintCallable to appear in intellisense, you can include the namespace that it resides within with this piece of code:

using namespace UF;
2 Likes