Nie można dopasować definicji do istniejącej funkcji

0

Witam.
Dlaczego dla poniższego kodu otrzymuję poniższe błędy?
Table_Head_Logic.h

#include <array>
#include "Data.h"

class Table_Head_Logic
{	
	struct Sorted_Colors_Selected
	{
		Color_Selected Color;

		size_t ID;

		static bool Compare(Sorted_Colors_Selected Value_01, Sorted_Colors_Selected Value_02)
		{
			return Value_01.Color.Colors.size() > Value_02.Color.Colors.size();
		}

		void Set(Color_Selected Color, size_t ID)
		{
			this->Color = Color;
			this->ID = ID;
		}

	};

	template <size_t Size> std::array<Sorted_Colors_Selected, Size> Sort_By_Size(std::array<Color_Selected, Size> &Array);
}

Table_Head_Logic.cpp

#include "Table_Head_Logic.h"

template <size_t Size> std::array<Sorted_Colors_Selected, Size> Table_Head_Logic::Sort_By_Size(std::array<Color_Selected, Size> &Array)
{
	std::array<Sorted_Colors_Selected, Size> Sorted;
	
	for (size_t TB_01 = 0; TB_01 < Size; ++TB_01) Sorted[TB_01].Set(Array[TB_01], TB_01);

	std::sort(Sorted.begin(), Sorted.end(), Sorted_Colors_Selected::Compare);

	return Sorted;
}
Błąd	1	error C2065: "Sorted_Colors_Selected" : niezadeklarowany identyfikator
Błąd	2	error C2923: "std::array" : "Sorted_Colors_Selected" nie jest prawidłowy argument typu szablon dla parametru "_Ty"
Błąd	3	error C2244: "Table_Head_Logic::Sort_By_Size" : nie można dopasować definicji funkcji do istniejącej deklaracji
2

nie Sorted_Colors_Selected, lecz Table_Head_Logic::Sorted_Colors_Selected

1

Brakuje średnika na końcu deklaracji klasy.

std::array<Table_Head_Logic::Sorted_Colors_Selected, Size>

To jest kwestia gustu, ale dla mnie Twoje nazewnictwo jest dziwne i strasznie nieczytelne.

0

Dziękuję za pomoc.

Co do braku średnika to zapomniałem o nim gdy wycinałem ten fragment klasy.
Odnośnie nazewnictwa, w C++ przyzwyczaiłem się już do używania znaku podkreślenia, podczas pisania w C# staram się nie używać _, np. SortedColorsSelected.

1 użytkowników online, w tym zalogowanych: 0, gości: 1