Programming Language/C++2011. 9. 7. 00:58

 
  • 다음은 singleton pattern 중, library나, Backend 단위에 잘 쓰이는 형식이다. 복사 생성자 및 대입자를 막기 위해 주요 Class들이 가지게 한다.


  1. 
    #ifndef __has_feature
    #define __has_feature(x)0
    #endif
    #if __has_feature(cxx_deleted_functions)
    #define WTF_MAKE_NONCOPYABLE(ClassName)\
    _Pragma("clangdiagnosticpush")\
    _Pragma("clangdiagnosticignored\"-Wunknown-pragmas\"")\
    _Pragma("clangdiagnosticignored\"-Wc++0x-extensions\"")\
    private:\
    ClassName(constClassName&)=delete;\
    ClassName&operator=(constClassName&)=delete;\
    _Pragma("clangdiagnosticpop")
    #else
    #define WTF_MAKE_NONCOPYABLE(ClassName)\
    private:\
    ClassName(constClassName&);\
    ClassName&operator=(constClassName&)
    #endif
    





  • Nnoncopyable.h
  • 복사생성자, 복사 대입 생성자 금지
Posted by BLUE-NOTE