C++ static variable not initializing

I’m having a problem where it seems static variables initialized in the top of the .cpp file are not initialized properly.

ItemFunctionLibrary.h:

UCLASS(BlueprintType)
class MYPROJECT_API UItemFunctionLibrary : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
private:
	static bool s_initialized;
public:

	UFUNCTION(BlueprintCallable, Category = "ItemFunctionLibrary") static bool LoadItem(const FName itemID, UItem*& itemOut);
	static void Initialize();
}

ItemFunctionLibrary.cpp

bool UItemFunctionLibrary::s_initialized = false;

bool UItemFunctionLibrary::LoadItem(const FName itemID, UItem*& itemOut)
{
	if(s_initialized == false) // s_initialized is always TRUE
	{
		Initialize(); // never hit
	}

        // other stuff
}


void UItemFunctionLibrary::Initialize() // entire function is never called
{
	s_initialized = true;
	// other stuff
}

I’m not sure what I’m doing wrong. I’ve used this version of initialization in other C++ programs before, but it doesn’t work in this version.

For anyone who cares, I found the problem. The problem was that when the engine hot-reloaded, it didn’t load quite right. It seems to be an on-going issue with the engine, with understandably little hope for fixes in the future (it’s a very complicated problem to work out on the fly). The work-around is simply closing and re-opening the engine.