GENERATED_BODY() causing function declaration and member inaccessibility errors

Public members shown below

public:

	UCGenome();

	UCGenome(int id, int inputs, int outputs);

	UCGenome(int id,
		TArray<FNeuronGene> neurons,
		TArray<FLinkGene> genes,
		int inputs,
		int outputs);

	~UCGenome();

	//copy constructor
//	UCGenome(const UCGenome& g);

	//assignment operator
//	UCGenome& operator =(const UCGenome& g);

	UFUNCTION(BlueprintCallable, Category = NEAT)
		UCNeuralNet* CreatePhenotype();

	UFUNCTION(BlueprintCallable, Category = NEAT)
		void DeletePhenotype();

	UFUNCTION(BlueprintCallable, Category = NEAT)
		void InitializeWeights();

		void AddLink(float MutationRate,
			float ChanceOfRecurrent,
			UCInnovation &innovation,
			int NumTrysToFindLoop,
			int NumTrysToAddLink);

		void AddNeuron(float MutationRate,
			UCInnovation &innovation,
			int NumTrysToFindOldLink);

	UFUNCTION(BlueprintCallable, Category = NEAT)
		void MutateWeights(float mut_rate,
			float prob_new_mut,
			float fMaxPerturbation);

	UFUNCTION(BlueprintCallable, Category = NEAT)
		void MutateActivationResponse(float mut_rate,
			float MaxPerturbation);

	float GetCompatibilityScore(const UCGenome &genome);

	UFUNCTION(BlueprintCallable, Category = NEAT)
	void SortGenes();

	bool Write(ostream &file);
    	bool CreateFromFile(const char* szFileName);

	//overload '<' used for sorting. From fittest to poorest
	friend bool operator <(const UCGenome& lhs, const UCGenome& rhs)
	{
		return (lhs.m_fFitness > rhs.m_fFitness);
	}