Very strange compiler error (C++)

I’m trying to add a struct I can use in blueprints, but i’m getting this very odd compiler error:

h:

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once

/**
 * 
 */

UENUM(BlueprintType)
enum class ETriggerType :uint8
{
	TT_DEFAULT UMETA(DisplayName = "Default(0)"),
	TT_UNLOCK  UMETA(DisplayName = "Unlock(1)")

};
UENUM(BlueprintType)
enum class EMovementType :uint8
{
	MT_NONE UMETA(DisplayName = "None"),
	MT_NORMAL  UMETA(DisplayName = "Normal"),
	MT_LADDER  UMETA(DisplayName = "Ladder"),
	MT_ZEROG  UMETA(DisplayName = "Zero G")
};

USTRUCT(BlueprintType)
struct FInventoryItem
{
	GENERATED_USTRUCT_BODY()

};





class VOID_API UDefinitions
{
public:
	UDefinitions();
	~UDefinitions();
};

cpp:

// Fill out your copyright notice in the Description page of Project Settings.

#include "Void.h"
#include "UDefinitions.h"
UDefinitions::UDefinitions()
{
}

UDefinitions::~UDefinitions()
{
}

Any ideas what is causing this?

Solved by adding
#include “ClassName.generated.h”
to header file