C++ naming conventions -- letters in front of names

So looking through C++ tutorials and some of the Unreal source code I keep finding names with seemingly random letters in front. For example looking through the Slate tutorial found here, there are names like this:

class SLATETUTORIALS_API SMainMenuUI :public SCompoundWidget

Why is there an “S” in front of the name of the class?

void Construct(const FArguments& InArgs);

Why is there an “F” here?

I have done a bit of google searching and was unable to find any resources to explain this. Though its very possible I am just not sure what to call this and am not searching correctly. I think if someone could help me clear this up a lot of the code and tutorials would be much easier to understand.

Thanks!

S is from the base class like ScompoundWidget, which stand for Slate.

A is from base class like AActor, stand for Actor.

U is from base class like UObject, stand for Unreal i think.

E is for Enum.

F is for most of anything else like struct, i don’t know what is stand for.

I is for Interface.

Some more else maybe i don’t know yet.

That looks correct to me (it’s the same as the list I’d made, except I’d forgotten interfaces).

Pedantic nitpick: S is for anything deriving from SWidget (although most things that you make for games will derive from SCompoundWidget).

Explanation for F: Type Name Prefix Convention - C++ - Epic Developer Community Forums

“The F doesn’t really stand for anything. The first struct in the codebase was FVector, which was prefixed with F because it was a vector of floats, and the trend caught on.”

Thanks guys! This is exactly what I needed!

I also found this which helps a bit. Apparently there is also “T” which is for template classes.

https://docs.unrealengine.com/latest/INT/Programming/Development/CodingStandard/index.html#namingconventions

Very…eh Rational :smiley:
but ok
…from now on I will read it as F***Vector then :smiley: