본문 바로가기

C,C++/공부 낙서

공부하면서 빠트린 것들 끄적끄적 - 템플릿, 타입ID

호출 시점에 함수를 만드는 것이 템플릿

 

typeid(class).name() : 클래스의 이름을 가져옵니다. (RTTI)

 

사용법

	template <class T>
	void set_scene(T* class_in)
	{
		E_GAME_SCENE_TYPE new_scene_type = E_GAME_SCENE_TYPE::GST_COUNT;
		
        // 클래스의 이름끼리 비교할 때
		if (typeid(class_in).name() == typeid(_title_scene).name())
			new_scene_type = E_GAME_SCENE_TYPE::GST_TITLE;
		else if (typeid(class_in).name() == typeid(_lobby_scene).name())
			new_scene_type = E_GAME_SCENE_TYPE::GST_LOBBY;
		else if (typeid(class_in).name() == typeid(_baracks_scene).name())
			new_scene_type = E_GAME_SCENE_TYPE::GST_BARRACK;

		if (!_scene_array[static_cast<unsigned int>(new_scene_type)])
			_scene_array[static_cast<unsigned int>(new_scene_type)] = class_in;

	}