UE4 Include Guard #ifndef , #define breaking #include ".generate.h"

Guys how are you handling your include guards? I am trying to use the #ifndef at the beggining with #define , however it is breaking the .generated.h for my class. Visual studio 2015 gives me this error when i try to use it.

The error is this one “: fatal error C1083: Cannot open include file: ‘BaseSubmarine.generated.h’: No such file or directory”

I believe using FORCEINLINE and including header in the .cpp as a bad practice.

How do you guys handle it?

UE4 makes no use of that style of include guards. Instead, they use #pragma once which is a widely accepted method of include guarding. It has the same purpose as an include guard.

How does that work? Every once of knowledge is good.

Also, a thing to keep in mind :
The generated header file include should be the last include and the first include needs to be the header file with the name of your project.

This can be a time saver if you ever accidentally crapify your project (which I have done many times)