프로그래밍

싱글톤패턴 스마트포인트로 만드는거 이해가 안되는데 도움좀

대충 검색으로 찾아보니간

 

template<typename T>
class CSingleton
{
public:
  static T* GetInstance()
  {
    std::call_once(m_onceFlag, [] {
      m_pInstance.reset(new T);
    });
 
    return m_pInstance.get();
  }
 
private:
  static std::shared_ptr<T> m_pInstance;
  static std::once_flag m_onceFlag;
};
template<typename T> std::shared_ptr<T> CSingleton<T>::m_pInstance = NULL;
template<typename T> std::once_flag CSingleton<T>::m_onceFlag;

 

이렇게 구현해놨더라고

 

 

대충은 알겠는데

 

 

여기서 템플릿으로 해논 이유가 뭐임?

 

template<typename T> std::shared_ptr<T> CSingleton<T>::m_pInstance = NULL;
template<typename T> std::once_flag CSingleton<T>::m_onceFlag;

 

이런씩으로 해놨는데 이해가 잘안가네

 

그리고 생성자랑 소멸자 구현안해놨던데 스마트포인터쓴다고 해서 생성자랑 소멸자 구현안해놓을이유가 없지않음?

 

너무 으릅당...

 

좀 알려줄사람있음?

3개의 댓글

스마트 포인터가 템플릿임. 타입과 관계 없이 다 돌아가야 해서 그런거고

싱글톤은 그런 스마트 포인터의 타입을 하나로 제한두지 않고 마찬가지로 여러 타입에 대해 작동해야 하니까 템플릿으로 함.

만약에 Int에 대해서만 하고 싶으면 구현 할 때 Int 타입 때려 박으면 거기에 대해서만 동작함.

 

생성자 소멸자 없는건 그냥 default를 쓰면 그럴 수 있음. 따로 꼬일 여지 없고 상속 안하며 내부 field들이 zero initialize로도 충분하면 뭐

굳이 만들 필요는 없지.

0
@천궁딸린라이젠

그래서 그런건가? 근대 지금 내가 만들고 있는게 타입마다 각자 싱글톤으로 구현하려고 해서 굳이 템플릿으로 만들어야되나 싶어서 그럼

0
@씨발좆같은개새끼

여러 타입에 대해 동일한 작업을 구현하기 위해 반복적인 작업을 하는 것을 줄이기 위해 나온 것이니까 반대로 모든 타입에 작동하는 싱글톤을 구현하는 클래스인거지 저건.

따로 하려면 위에도 말했지만 싱글톤 클래스에 template 선언 없애고 대신 내부에 있는 template 변수들마다 원하는 타입을 넣어주면 될듯

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5692 [프로그래밍] 취준생 안드로이드 팀플 주제 머할까요... 7 조강현 0 12 시간 전 135
5691 [프로그래밍] 공통코드테이블은 대체 왜 만드냐 9 잠적자 0 1 일 전 363
5690 [프로그래밍] 토이프로젝트 주제 선정 3 개드립눈팅1세대 0 2 일 전 192
5689 [프로그래밍] 엥 구글 플러터 유기각 재는거임?? 4 최수연 0 4 일 전 314
5688 [프로그래밍] 반도체 장비 업계인 있음? 9 캡틴띠모 0 4 일 전 277
5687 [프로그래밍] 안드로이드 책 추천좀 6 집에가게해줘 0 5 일 전 152
5686 [프로그래밍] 폰 스크리닝 해 본 사람 있어? 3 무지개빛푸딩 0 6 일 전 381
5685 [프로그래밍] jsp 트리메뉴 만들고있는데 구상한게가능한지 의견좀물어볼께 11 평택국 0 6 일 전 162
5684 [프로그래밍] JPA 도와줘어억 ㅠ 10 모그리또 0 7 일 전 247
5683 [프로그래밍] 의사는 뽑는 인원 제한하는데 부캠은 왜 제한 안 할까 5 조강현 0 8 일 전 366
5682 [프로그래밍] 그 혹시 게임쪽 종사자 있음? 17 god79ii 0 12 일 전 630
5681 [프로그래밍] 코린이 ㅅㅂ 뭐가 문젠지 모르겠어요 9 집에가게해줘 0 13 일 전 445
5680 [프로그래밍] Dear Imgui 라고 아시나요? 2 년째모쏠 0 13 일 전 246
5679 [프로그래밍] 현업개발자분들 주말엔 편하게 쉴수있나요? 10 키로 0 13 일 전 864
5678 [프로그래밍] 무엇이든 물어보세요. 28 변현제 0 15 일 전 415
5677 [프로그래밍] 개발자보단 엔지니어가 취업이 잘됨 5 iillillill 2 17 일 전 738
5676 [프로그래밍] 프론트엔드 개발자 연봉 1억 넘는 사람 있어? 13 잠적자 0 17 일 전 640
5675 [프로그래밍] Exiftool 이거 일본어 못 읽는데 13 부터시작하는이세... 0 18 일 전 235
5674 [프로그래밍] 반응형 웹페이지가 내가상상한거랑 좀 다르네 4 평택국 0 19 일 전 452
5673 [프로그래밍] 고졸 FE개발자 연봉, 상황에 조언좀.. 19 쾅꿍꿍 0 20 일 전 609